Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 014 на задачу N 4
 
 автор: SoftTime   (08.02.2006 в 17:10)   письмо автору
 
 

Ответ 014 на задачу N 4.
С условиями задачи можно ознакомится по ссылке.
ee11cbb19052e40b07aac0ca060c23ee - user
dd97813dd40be87559aaefed642c3fbb - igor
8dbc672497bdc46f88e864bb1121232c - lena
3e10f8c809242d3a0f94c18e7addb866 - atom
на моем 4 пентиуме подбирались около минуты(можно запрофилировать)

<?php
//переопределяем стандартное время выполнение скриптов
set_time_limit(0);
//пишем свою функцию
требует:
мах кол-во знаков сам хеш и строку для сложения
function md5_hack($num,$hash,$str)
{
    
//символы из которых состоит исходная строка
    
$simvols=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");
    foreach(
$simvols as $value)
    {
        
//формирование строки для брута
        
$cur=$value.$str;
        
//условия выхода(найдено значение)
        
if(md5($cur)==$hash)
        {
            
//вывод
            
echo(md5($cur)." - ".$cur."<br>");
            break;
        }
        
//выход из функции
        
if(strlen($cur)==$num+1)break;
        
//рекурсивный вызов
        
md5_hack($num,$hash,$cur);
    }
}
//непосредственно сам взлом
md5_hack(4,"ee11cbb19052e40b07aac0ca060c23ee","");
md5_hack(4,"dd97813dd40be87559aaefed642c3fbb","");
md5_hack(4,"8dbc672497bdc46f88e864bb1121232c","");
md5_hack(4,"3e10f8c809242d3a0f94c18e7addb866","");

?>


http://www.softtime.ru/info/task.php?id_article=74

   
 
 автор: cheops   (09.02.2006 в 00:16)   письмо автору
 
   для: SoftTime   (08.02.2006 в 17:10)
 

Используется функция set_time_limit(0) - это хорошо, диапазон символов также легко расширяем, используется рекурсивный спуск. Однако скрипт достаточно долго выполняется - всех дольше пожалуй.

   
 
 автор: udaf   (09.02.2006 в 02:19)   письмо автору
 
   для: cheops   (09.02.2006 в 00:16)
 

зато коротко и читабельно

   
 
 автор: cheops   (09.02.2006 в 13:31)   письмо автору
 
   для: udaf   (09.02.2006 в 02:19)
 

Да компактность и читабельность на высоте, а это очень важно - ведь ответы на задачи предполагают, что код будет читать не только автор. Тот кто об этом задумывается об этом здесь, не забудет и в реальном проекте.

   
 
 автор: Artem S.   (09.02.2006 в 22:21)   письмо автору
 
   для: SoftTime   (08.02.2006 в 17:10)
 

Выход по break плохая практика, тем более в рекурсивной функции. С другой стороны код минимален.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования