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

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

 

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

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

тема: Ответ 008 на задачу N 5
 
 автор: SoftTime   (10.02.2006 в 15:23)   письмо автору
 
 

Ответ 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_time6)); // вывод времени работы скрипта 
   // вывод времени работы скрипта в принципе не нужен, но по-моему полезен 

?>


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

   
 
 автор: Коляка   (13.02.2006 в 00:18)   письмо автору
 
   для: SoftTime   (10.02.2006 в 15:23)
 

неправельно вывело

$arr = explode("
",$content);

В ковычках \ n

$arr = explode("\n",$content);

   
 
 автор: cheops   (13.02.2006 в 00:36)   письмо автору
 
   для: 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_time6)); // вывод времени работы скрипта 
   // вывод времени работы скрипта в принципе не нужен, но по-моему полезен 

?>

   
 
 автор: cheops   (13.02.2006 в 00:40)   письмо автору
 
   для: cheops   (13.02.2006 в 00:36)
 

Зря функцию используете - вызов функции - это всегда дополнительное время, хотя читабельность от этого только возрастает.

   
 
 автор: udaf   (13.02.2006 в 01:34)   письмо автору
 
   для: cheops   (13.02.2006 в 00:40)
 

в этом коде хеш считается по одному слову а присовпадении этого хеша выводится другое слово(с большой буквы) а md5 это не какой-то там lmхеш и ему до этого есть дело
вот причина

//проверка
if ((md5(strtolower($arr[$i])) == $start)) {break;}   

      } 
//возврат не хватает функции  strtoloweк();
      return $arr[$i] 

   
Rambler's Top100
вверх

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