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

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

 

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

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

тема: Ответ 003 на задачу N 4
 
 автор: SoftTime   (06.02.2006 в 14:42)   письмо автору
 
 

Ответ 003 на задачу N 4.
С условиями задачи можно ознакомится по ссылке.

<?
$hash
="e10f8c809242d3a0f94c18e7addb866";
$s=97//ограничения по символам (a-z)
$do=122;
starta();   //начинаем отсчет времени
for ($i=1;$i<5;$i++) {   //длина пароля от 1 до 4
   
for ($g=1;$g<=$i;$g++) $sim[$g]=$s;  //"обнуляемся"
   
   
while ($sim[1]<=$do) { //пока не дошли до верхней границы
      
$pas="";
      for (
$g=1;$g<=$i;$g++) $pas.=chr($sim[$g]);  //собираем пароль из символов
      
if (md5($pas)==$hash) { //сверяем с зашифрованным
         
echo "Пароль рашифрован: ".$pas."<br>"finala();  //если нашли, то тормазим время и выдаем
      
}
      
$sim[$i]++;   //увеличиваем на единицу поледний символ
      
for ($g=$i;$g>1;$g--) {if ($sim[$g]>$do) {$sim[$g-1]++; $sim[$g]=$s;}}  //если какой-то из символов превысил верхнюю границу
      
}
} echo 
"Пароль не расшифрован";  //если не получилось

function starta() {
global 
$nowtime;
$nowtime=time();
}

function 
finala() {
global 
$nowtime;
echo 
"Операция заняла ".(time()-$nowtime)." сек.";
exit;
}
?>


Пароли:

user
igor
lena
atom


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

   
 
 автор: cheops   (08.02.2006 в 22:50)   письмо автору
 
   для: SoftTime   (06.02.2006 в 14:42)
 

Очень компактно, но почему-то у меня не работает - пишет "Пароль не расшифрован", также не нравится повторы циклов for ($g=1;$g<=$i;$g++) и раздельная обработка паролей - в куче их расшировать быстрее получится.

   
 
 автор: СерегаВЕБ   (09.02.2006 в 13:11)   письмо автору
 
   для: cheops   (08.02.2006 в 22:50)
 

Так и задумано: там несуществующий md5

   
Rambler's Top100
вверх

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