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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вопрос по Задаче №5

Сообщения:  [1-8] 

 
 автор: АКУЛА   (09.04.2006 в 11:28)   письмо автору
 
   для: Trianon   (09.04.2006 в 03:15)
 

Спасибо. Получилось.
Вот Вы тут классные :)
Сделал так:
if (md5(trim(strtolower($thisword))) == "fb28e9240e83a5264566de844cc45523") echo "1: $thisword <br>"

   
 
 автор: Trianon   (09.04.2006 в 03:15)   письмо автору
 
   для: АКУЛА   (08.04.2006 в 22:06)
 

Из-за того, что слово в словаре может быть написано не теми буквами, что в пароле.
Имеется в виду разный регистр (заглавные и строчные буквы)

   
 
 автор: АКУЛА   (08.04.2006 в 22:06)   письмо автору
 
   для: Trianon   (08.04.2006 в 10:00)
 

Спасибо за помощь.
Кстати купил как-то книгу РНР5 И.Симдянова и переодически туда заглядываю.
Ничё так.
Скажите пож-ста а почему у меня находятся только 3-4 слова.
Я уже менял и перепроверял правильность хэша и всё равно все 5 не отображаются :(
Из-за чего так?

   
 
 автор: Trianon   (08.04.2006 в 10:00)   письмо автору
 
   для: АКУЛА   (07.04.2006 в 21:39)
 

В Вашем коде Вы вычисляете md5 от элементов массива $array.
Для этого сперва написан оператор $array = file($filename);
Но он помещает в массив не слова, а строки со словами.
Строки отличаются от слов тем, что последним символом каждой является символ конца строки '\n' .
Этот символ учитывается при вычислении md5-хеша наравне с буквами слова.
md5("$word") не равно md5("$word\n") .
Вот у Вас поиск и удается.

   
 
 автор: cheops   (07.04.2006 в 22:52)   письмо автору
 
   для: АКУЛА   (07.04.2006 в 21:39)
 

Элементы массива $array нужно прогнать через функцию trim(), чтобы удалить невидимые символы в конце каждого слова.

   
 
 автор: АКУЛА   (07.04.2006 в 21:39)   письмо автору
 
   для: Trianon   (07.04.2006 в 21:19)
 

Тоесть? можно поподробнее?

   
 
 автор: Trianon   (07.04.2006 в 21:19)   письмо автору
 
   для: АКУЛА   (07.04.2006 в 21:10)
 

file() оставляет концы строк (CR,LF) в элементах массива. Вот хеши и не сходятся.

   
 
 автор: АКУЛА   (07.04.2006 в 21:10)   письмо автору
 
 

Записываю слова файла в массив, потом пытаюсь обойти каждое слово массива, закодировав его в md5 и сравнив с предоставленными кодами.
И что-то нифига.

Вот что может быть с этим кодом неладного?

<?php
$filename = "words.txt";
if(!file_exists($filename)){
echo "Не могу найти файл words.txt";
}
$array = file($filename);
$result = count($array);

for ($i = 0; $i < $result; $i++){
if (md5($array[$i]) == "fb28e9240e83a5264566de844cc45523") print "$array[$i] <br>";
if (md5($array[$i]) == "437233c74e25fe505293cd2e8ecc2696") print "$array[$i] <br>";
if (md5($array[$i]) == "06b2d4b91b5c9eaa8c20a1c270f95b3c") print "$array[$i] <br>";
if (md5($array[$i]) == "e206a54e97690cce50cc872dd70ee896") print "$array[$i] <br>";
if (md5($array[$i]) == "fbfa6902f089e5a0fa2424bd460ecfd0") print "$array[$i] <br>";
}
?>

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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