romanvs
15.02.2011, 21:18
Ниже представлены скрипт позволяющий восстанавливать пароли закодированные методом 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 $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;
?>
Расскодировка происходит методом полного перебора. Паролей можно задавать сразу несколько, на самом деле это упрощает процесс восстановления, по скольку происходит только один прогон для всех паролей.
?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 $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;
?>