|
|
|
| Ответ 010 на задачу N 4.
С условиями задачи можно ознакомится по ссылке.
<?
function gettime() // функция подсчёта времени
{
$part_time = explode(' ',microtime());
$real_time = $part_time[1].substr($part_time[0],1);
return $real_time;
}
$start_time = gettime(); // стартовое время
function shifr($start) // функция подбора
{
for ($pas = "a"; $pas <= "zzzz"; $pas++) // диапазон возможных значений
{ // прямой перебор
if ((md5($pas) == $start)) {break;} // пороверка, вывод и выход из цикла
}
return $pas; // возврат найденного пароля
}
$hesh[1] = "ee11cbb19052e40b07aac0ca060c23ee"; // хеш пароля
$hesh[2] = "dd97813dd40be87559aaefed642c3fbb";
$hesh[3] = "8dbc672497bdc46f88e864bb1121232c";
$hesh[4] = "3e10f8c809242d3a0f94c18e7addb866";
for ($i = 1; $i <= 4; $i++) // перебор всех хешей
{
echo "password$i = ".shifr($hesh[$i])."<br>"; // вызов функции с нужным хешем
}
$stop_time = gettime(); // конечное время
echo (bcsub($stop_time,$start_time, 6)); // вывод времени работы скрипта
// вывод времени работы скрипта в принципе не нужен, но по-моему полезен
?>
|
http://www.softtime.ru/info/task.php?id_article=74 | |
|
|
|
|
|
|
|
для: SoftTime
(07.02.2006 в 14:13)
| | У меня там не написано. Все вместе пароли нашлись за 7,682560 сек. | |
|
|
|
|
|
|
|
для: SoftTime
(07.02.2006 в 14:13)
| | Очень компактное и хорошее решение, читабельность выше всяких похвал, нет вложенных циклов, однако расширяемость диапазона не очевидна. | |
|
|
|
|
|
|
|
для: SoftTime
(07.02.2006 в 14:13)
| | за код 5 за алгоритм 2 =)
шутка конечно.
Очень компактный скрипт, с отсутсвием лишних "деталей", это очень хорошо.
Код порадовал, а большем говорить не зачем =) | |
|
|
|