Брут (подбор) пароля по md5 php скриптом
// Устанавливаем неограниченное время выполнения скрипта
set_time_limit(0);
// Читаем пароли из файла password
$pass = file("password.txt");
foreach($pass as $password)
{
// Замеряем время, затраченное на подбор пароля
$begin = time();
echo decrypt_md5(trim($password),"");
$end = time();
echo " (На подбор затрачено ".($end - $begin)." секунд) <br>";
}
// Функция посимвольного перебора пароля
// $pass - расшифровываемый пароль
// $answer - текущий ответ, при первом вызове - пустая строка
function decrypt_md5($pass, $answer)
{
$arr = array('a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','q','r','s',
't','u','v','w','x','y','z');
// Будем считать, что пароль не превышает
// 4 символов
$max_number = 3;
if(strlen($answer) > $max_number) return;
for($j = 0; $j < count($arr); $j++)
{
$temp = $answer.$arr[$j];
if(md5($temp) == $pass) return $temp;
// Рекурсивно вызываем фукнцию для увеличения
// длины подбираемого пароля
$result = decrypt_md5($pass, $temp);
// Если функция возвращает непустую строку,
// следовательно, найден ответ и дальше искать
// не следует
if(strlen($result) > 0) return $result;
}
}
Этот комментарий был удален автором.
ОтветитьУдалитьМ.Кузнецов, И.Симдянов "Головоломки на PHP"
ОтветитьУдалитьПодбор пароля по словарю
";
}
// Функция посимвольного перебора пароля
// $pass - расшифровываемый пароль
// $answer - текущий ответ, при первом вызове - пустая строка
function decrypt_md5($pass)
{
// Переносим содержимое словаря в массив
$dict = file("words.txt");
// В цикле подбираем пароль
foreach($dict as $word)
{
if(md5(trim($word)) == $pass) return $temp;
}
}
?>
Файл password
PHP:
ee11cbb19052e40b07aac0ca060c23ee
dd97813dd40be87559aaefed642c3fbb
8dbc672497bdc46f88e864bb1121232c
3e10f8c809242d3a0f94c18e7addb866
// Устанавливаем не ограниченное время выполнения скрипта
Удалитьset_time_limit(0);
// Читаем пароли из файла password
$pass = file("password");
foreach($pass as $password)
{
// Замеряем время, затраченное на подбор пароля
$begin = time();
echo decrypt_md5(trim($password));
$end = time();
echo " (на подбор затрачено ".($end - $begin)." секунд)
";
}