<?php
function timer()
{
$t=explode(' ',microtime());
$subtime=$t[1].substr($t[0], 1);
return $subtime;
}
$total_start=timer();
?>
<html>
<head>
<title>Подбор паролей</title>
</head>
<body bgcolor=silver>
<center>
<?php
// Начальные условия задачи
// -------------------
// Зашифрованные пароли
$crypted[1]="ee11cbb19052e40b07aac0ca060c23ee";
$crypted[2]="dd97813dd40be87559aaefed642c3fbb";
$crypted[3]="8dbc672497bdc46f88e864bb1121232c";
$crypted[4]="3e10f8c809242d3a0f94c18e7addb866";
// Максимальная длина пароля
$limit=4;
//-------------------
// Воспользуемся тем, что РНР работает с буквами так же, как с числами
// -----
// Формируем "максимальный" пароль
$char_limit="";
$c=1;
for ( ; $c <= $limit; $c++)
{
$char_limit .= 'z';
}
// Для четырех символов будет zzzz.
$clear_start=timer();
$stop=false;
$i="a";
for ( ; $i <= $char_limit; $i++)
{
foreach($crypted as $key => $item)
{
if (md5($i) == $item)
{
echo "Пароль №".$key.": ".$i.'<br>';
unset($crypted[$key]); // удаляем найденный пароль из массива
if (empty($crypted))
{
$stop=true; // флаг прекращения внешнего цикла
break;
}
}
}
if ($stop) break;
}
$end=timer();
$total=$end-$total_start;
$clear=$end-$clear_start;
?>
<p>
Всего времени (с инициализацией всех переменных): <?=$total?><br>
"Чистое" время (только брутфорс): <?=$clear?> <br>
На инициализацию потрачено: <?=$total-$clear?>
<center>
</body>
</html>
Меня интересует 2 момента.
Можно инициализировать переменную вне цикла, а в цикле этот параметр оставить пустым?
$i="a";
for ( ; $i <= $char_limit; $i++)
И вот, что это за оператор вывода?
<?=$total?><br>
Прокомментируйте пожалуйста.
Спустя 17 минут, 3 секунды (26.09.2010 - 11:09) inpost написал(а):
<?=$total?> - упрощенная система такой строки: <?php echo $total; ?>.
Использовать не рекомендуется. В дальнейшем будут проблемы с XML, а может ещё с другими вещами.
А что мешает сделать так (не интересовался, надо пробовать):
Использовать не рекомендуется. В дальнейшем будут проблемы с XML, а может ещё с другими вещами.
А что мешает сделать так (не интересовался, надо пробовать):
$a = "a";
for ($i = $a ; $i <= $char_limit; $i++)
Спустя 54 минуты, 54 секунды (26.09.2010 - 12:04) SvSerg написал(а):
Цитата (inpost @ 26.09.2010 - 08:09) |
<?=$total?> - упрощенная система такой строки: <?php echo $total; ?>. Использовать не рекомендуется. В дальнейшем будут проблемы с XML, а может ещё с другими вещами. А что мешает сделать так (не интересовался, надо пробовать): $a = "a"; |
Это работает.
Спасибо Инпост.
Спустя 1 час, 4 минуты, 53 секунды (26.09.2010 - 13:09) Ice написал(а):
1. Естественно можно. Мало того, можно вообще все три параметра оставить пустыми
Тогда это будет бесконечный цикл. А можно задать и отслеживать сразу несколько переменных.
2. Второе будет работать только если в php.ini short_open_tags On, но лучше пусть будет Off
for( ;; )
Тогда это будет бесконечный цикл. А можно задать и отслеживать сразу несколько переменных.
2. Второе будет работать только если в php.ini short_open_tags On, но лучше пусть будет Off
Спустя 1 час, 25 минут, 46 секунд (26.09.2010 - 14:35) SvSerg написал(а):
Спасибо Айс, ещё вопрос - переменная $i была определена вне цикла, а в цикле переменная $i остаётся с этим же значением или теряет его?
Спустя 15 минут, 58 секунд (26.09.2010 - 14:51) Ice написал(а):
с этим же, ессно
Опускаем сразу 2 параметра:
Но вот это - бесконечный цикл, потому что нет условия прерывания:
но и его, в качестве примера работы с циклом, можно остановить:
$i = 0;
for( ; $i < 10; $i ++ )
echo $i; // 0 1 2 3 4 5 6 7 8 9
Опускаем сразу 2 параметра:
$i = 0;
for( ; $i < 10; ) {
echo $i; // 0 1 2 3 4 5 6 7 8 9
$i ++;
}
Но вот это - бесконечный цикл, потому что нет условия прерывания:
$i = 0;
for( ; ; ) {
echo $i; // 0 1 2 3 4 5 6 7 8 9 ... n
$i ++;
}
но и его, в качестве примера работы с циклом, можно остановить:
$i = 0;
for( ; ; ) {
if( $i > 9 )
break;
echo $i; // 0 1 2 3 4 5 6 7 8 9
$i ++;
}
Спустя 22 минуты, 17 секунд (26.09.2010 - 15:13) SvSerg написал(а):
Ну теперь окончательно научил.
Спустя 4 минуты, 7 секунд (26.09.2010 - 15:17) Ice написал(а):
Что - приятно
Спустя 42 минуты, 13 секунд (26.09.2010 - 15:59) SvSerg написал(а):
Да не то слово как Приятно, вообще на такие топики нужно структуризированно ссылки делать в виде списка, ну как справочник. Например:
Раздел "Циклы"
Раздел "Переменные"
Написать ссылку на этот справочник, на главной странице Форума.
И может глядишь, меньше одинаковых тем будет создаваться,
и со временем получится хороший, справочник с подробным описанием для новичков.
Раздел "Циклы"
- Свойства цикла FOREACH
Раздел "Переменные"
Написать ссылку на этот справочник, на главной странице Форума.
И может глядишь, меньше одинаковых тем будет создаваться,
и со временем получится хороший, справочник с подробным описанием для новичков.
Спустя 2 часа, 30 минут, 50 секунд (26.09.2010 - 18:30) Ice написал(а):
некоторые одинаковые темы уже и вправду заманали, с одними и теме же поповскими рыбами.
Спустя 6 месяцев, 27 дней, 18 часов, 33 минуты, 38 секунд (24.04.2011 - 13:04) konstantin05 написал(а):
помогите написать bat-файл для вывода на экран количества подкаталогов у корневого каталога для дисководов, имена которых заданы параметрами.
Повторяющиеся имена дисководов игнорировать. у меня проблемы с for...
Повторяющиеся имена дисководов игнорировать. у меня проблемы с for...
Спустя 3 минуты, 59 секунд (24.04.2011 - 13:08) Basili4 написал(а):
konstantin05
05 это возраст ???
Какое отношение bat имеют к пхп ??
05 это возраст ???
Какое отношение bat имеют к пхп ??