Авторские статьи Пример скрипта для востановления пароля из MD5

Discussion in 'Статьи' started by romanvs, 15 Feb 2011.

  1. romanvs

    romanvs New Member

    Joined:
    14 Jul 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Ниже представлены скрипт позволяющий восстанавливать пароли закодированные методом MD5.

    Расскодировка происходит методом полного перебора. Паролей можно задавать сразу несколько, на самом деле это упрощает процесс восстановления, по скольку происходит только один прогон для всех паролей.

    ?php

    function timer()
    {
    $t=explode(' ',microtime());
    $subtime=$t[1].substr($t[0], 1);
    return $subtime;
    }

    $total_start=timer();
    // Зашифрованные пароли
    $crypted[1]="eeafbf4d9b3957b139da7b7f2e7f2d4a"; // mama
    $crypted[2]="0ac6cd34e2fac333bf0ee3cd06bdcf96"; // papa
    $crypted[4]="822ce80cec024dc6c9180630a4b7d763"; // xxya

    // Максимальная длина пароля
    $limit=4;
    //-------------------

    // Формируем "максимальный" пароль
    $char_limit="";
    $c=1;
    for ( ; $c <= $limit; $c++)
    {
    $char_limit .= 'z';
    }
    // Для четырех символов будет zzzz.

    $clear_start=timer();

    $stop=false;
    $i="a";
    for ( ; $i <= $char_limit; $i++)
    {
    foreach($crypted as $key => $item)
    {
    if (md5($i) == $item)
    {
    echo "Пароль №".$key.": ".$i.'
    ';
    unset($crypted[$key]); // удаляем найденный пароль из массива
    if (empty($crypted))
    {
    $stop=true; // флаг прекращения внешнего цикла
    break;
    }
    }
    }
    if ($stop) break;
    }

    $end=timer();

    $total=$end-$total_start;
    $clear=$end-$clear_start;

    echo 'Всего времени (с инициализацией всех переменных): $total';
    echo '"Чистое" время (только брутфорс): $clear';
    echo 'На инициализацию потрачено: '.$total-$clear;
    ?>