|
|
|
| Ответ 008 на задачу N 5.
С условиями задачи можно ознакомится по ссылке.
<?php
//Ответ номер 010 на задачу N 4 + добавление = ответ на задачу N 5
/*
password 1 = Lisbon
password 2 = pyramid
password 3 = cluster
password 4 = Linux
password 5 = subprogram
время 2.374757
*/
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) // функция подбора
{
//читаем файл
$data = "linux.words";
$content = file_get_contents($data);
//разделяем переходом строки
$arr = explode(" ",$content);
for($i = 0; $i < count($arr); $i++)
{
//смена регистра, пороверка, вывод и выход из цикла
if ((md5(strtolower($arr[$i])) == $start)) {break;}
}
return $arr[$i] ; // возврат найденного пароля
}
$hesh[1] = "fbfa6902f089e5a0fa2424bd460ecfd0"; // хеш пароля
$hesh[2] = "437233c74e25fe505293cd2e8ecc2696";
$hesh[3] = "06b2d4b91b5c9eaa8c20a1c270f95b3c";
$hesh[4] = "e206a54e97690cce50cc872dd70ee896";
$hesh[5] = "fb28e9240e83a5264566de844cc45523";
for ($i = 1; $i <=5; $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=75 | |
|
|
|
|
|
|
|
для: SoftTime
(10.02.2006 в 15:23)
| | неправельно вывело
$arr = explode("
",$content);
|
В ковычках \ n
$arr = explode("\n",$content);
|
| |
|
|
|
|
|
|
|
для: SoftTime
(10.02.2006 в 15:23)
| | Исходное сообщение
<?php
//Ответ номер 010 на задачу N 4 + добавление = ответ на задачу N 5
/*
password 1 = Lisbon
password 2 = pyramid
password 3 = cluster
password 4 = Linux
password 5 = subprogram
время 2.374757
*/
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) // функция подбора
{
//читаем файл
$data = "linux.words";
$content = file_get_contents($data);
//разделяем переходом строки
$arr = explode("\n",$content);
for($i = 0; $i < count($arr); $i++)
{
//смена регистра, пороверка, вывод и выход из цикла
if ((md5(strtolower($arr[$i])) == $start)) {break;}
}
return $arr[$i] ; // возврат найденного пароля
}
$hesh[1] = "fbfa6902f089e5a0fa2424bd460ecfd0"; // хеш пароля
$hesh[2] = "437233c74e25fe505293cd2e8ecc2696";
$hesh[3] = "06b2d4b91b5c9eaa8c20a1c270f95b3c";
$hesh[4] = "e206a54e97690cce50cc872dd70ee896";
$hesh[5] = "fb28e9240e83a5264566de844cc45523";
for ($i = 1; $i <=5; $i++) // перебор всех хешей
{
// вызов функции с нужным хешем
echo "password $i = ".shifr($hesh[$i])."<br>";
}
$stop_time = gettime(); // конечное время
echo (bcsub($stop_time,$start_time, 6)); // вывод времени работы скрипта
// вывод времени работы скрипта в принципе не нужен, но по-моему полезен
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(13.02.2006 в 00:36)
| | Зря функцию используете - вызов функции - это всегда дополнительное время, хотя читабельность от этого только возрастает. | |
|
|
|
|
|
|
|
для: cheops
(13.02.2006 в 00:40)
| | в этом коде хеш считается по одному слову а присовпадении этого хеша выводится другое слово(с большой буквы) а md5 это не какой-то там lmхеш и ему до этого есть дело
вот причина
//проверка
if ((md5(strtolower($arr[$i])) == $start)) {break;}
}
//возврат не хватает функции strtoloweк();
return $arr[$i]
|
| |
|
|
|