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

?>


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

?>

   
 
 автор: 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 Яндекс.Метрика Яндекс цитирования