Комментарии 47
Автор, спасибо, конечно, за статью. За ваш ник только обидно, хоть и фамилия, но так расставлять акценты…
+5
Придумал мне его друг в школе — давно это было, а тогда переводили мы его в более приятном свете. Теперь английским владею лучше, а уже «из песни слов не выкинешь».
+5
Если продолжать так везде регистрироваться, то конечно не выкинешь.
+30
Никто не мешает отписать в администрацию сайта :)
0
Злые вы, но уходить мне хочется)
+5
Написать-то можно, только вот помочь они не смогут. Я тоже хотел как–то сменить ник здесь, но служба поддержки прислала отказ, сославшись на техническую невозможность данной операции.
0
Мешает архитектура хабра:
Это мне в саппорте ответили.
К сожалению, смена имени возможна только
у тех аккаунтов, от имени которых не было
написано постов или комментариев.
Это мне в саппорте ответили.
0
Боже, хватит уже использовать этот «мем», пожалуйста.
-1
Какой мем, вы о чем?
0
Жириновского. Да, немного надоел. Но пик прошел, очень редко теперь встретишь его.
0
Ну тогда я скажу «Боже, хватить использовать слова, значение которых вы не понимаете». ru.wikipedia.org/wiki/Мем
+4
Хотя, что-то да, не то. Комикс это.
+2
Не путайте понятия: ru.wikipedia.org/wiki/Интернет-мем
+5
Я думал что тут только один обьект может вызывать схожесть с «мемом». Скажите честно, вы действительно не поняли что я имел ввиду?
-1
Несколько замечаний:
1. Вашу ф-цию addToDict можно заменить на range.
2. As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is now done automatically.
1. Вашу ф-цию addToDict можно заменить на range.
2. As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is now done automatically.
+1
По первому пункту большое спасибо!
А насчет mt_srand — сама суть в том, что нам нужно инициализировать ГПСЧ предсказуемым образом и делать это многократно.
А насчет mt_srand — сама суть в том, что нам нужно инициализировать ГПСЧ предсказуемым образом и делать это многократно.
+1
Since 5.2.1 The Mersenne Twister implementation in PHP now uses a new seeding algorithm by Richard Wagner. Identical seeds no longer produce the same sequence of values they did in previous versions. This behavior is not expected to change again, but it is considered unsafe to rely upon it nonetheless.
0
Вы оказались правы. Вот и комментарий увидел.
0
5.3.13 результат true
0
function getWord($alphabet, $len) {
shuffle($alphabet);
return implode('', array_slice($alphabet, 0, $len));
}
0
Озвучка Жирика бездарна.
-1
Какой-то странный подход. Я бы сказал первым делом вроде как в случае с библиотеками для шифрования: не создавайте радужные таблицы (далее — RT) самостоятельно, разве что вы точно знаете, зачем вы это делаете.
Во-первых, создавать RT из перебора символов просто не имеет смысла — такого рода подбор реализуют программы типа md5inside, без лишних сложностей типа хранения RT отдельной таблицей в базе данных.
Во-вторых, как известно, при утечке базы сайта цель — взломать как можно больше паролей при как можно меньших затратах ресурсов. При таком подходе брутфорс не эффективен — он применяется для взлома какого-то одного конкретного пароля. В нашем случае нам нужна RT, основанная на словарях популярных паролей.
И именно потому имеем в-третьих: те RT, которые можно скачать, создавались путем хеширования популярных паролей, а не рендомного перебора. Среди их есть очень качественные, которые включают в себя русские слова, набранные в английкой раскладке, слова с заменой a на @ и прочими стандартными хитростями.
Шанс на успех с такими, уже заготовленным таблицами, намного выше, чем с рендомным перебором.
Во-первых, создавать RT из перебора символов просто не имеет смысла — такого рода подбор реализуют программы типа md5inside, без лишних сложностей типа хранения RT отдельной таблицей в базе данных.
Во-вторых, как известно, при утечке базы сайта цель — взломать как можно больше паролей при как можно меньших затратах ресурсов. При таком подходе брутфорс не эффективен — он применяется для взлома какого-то одного конкретного пароля. В нашем случае нам нужна RT, основанная на словарях популярных паролей.
И именно потому имеем в-третьих: те RT, которые можно скачать, создавались путем хеширования популярных паролей, а не рендомного перебора. Среди их есть очень качественные, которые включают в себя русские слова, набранные в английкой раскладке, слова с заменой a на @ и прочими стандартными хитростями.
Шанс на успех с такими, уже заготовленным таблицами, намного выше, чем с рендомным перебором.
+8
Все хорошо говорите.
Да, подбор по словарю с точки зрения этих критериев (как можно больше, как можно быстрее) более эффективен.
Но никто не отменял исключительно учебные цели.
Мое лично убеждение заключается в том, что на голых книжных знаниях далеко не пойдешь. Нужно постоянно пробовать новое, изобретать, стараться что-то реализовывать самому. В процессе создания появляются трудности, и только в момент их преодоления ты действительно растешь как личность, растут твои профессиональные качества.
Да, подбор по словарю с точки зрения этих критериев (как можно больше, как можно быстрее) более эффективен.
Но никто не отменял исключительно учебные цели.
Мое лично убеждение заключается в том, что на голых книжных знаниях далеко не пойдешь. Нужно постоянно пробовать новое, изобретать, стараться что-то реализовывать самому. В процессе создания появляются трудности, и только в момент их преодоления ты действительно растешь как личность, растут твои профессиональные качества.
0
Хочу добавить, что не имеет смысла генерировать случайные пароли, тогда уже просто лучше заполнить базу итеративным методом (имею ввиду a...a -> z...z). При этом хранить её можно в древе, для ускорения доступа.
P.S.: На PHP такие штуки не особо удобно писать, тк. здесь важна производительность.
P.S.: На PHP такие штуки не особо удобно писать, тк. здесь важна производительность.
+1
Запутано все как-то с этими радужными таблицами. Если бы я ради фана подбирал пароли, то я бы качнул словарь побольше, записал бы хеш каждого слова и само слово в таблицу бд и сделал бы джоин с «угнаной» таблицей.
+3
Мда, где-то и мой там будет, хоть и не 6.
0
Я только одного не понял, если пароль захеширован вместе с солью — вы и ее тоже перебираете?
0
Уникальная для каждого пароля соль — очень простой и эффективный метод борьбы против подбора с помощью радужных таблиц. Она увеличивает длину входных пароля, и создание радужной таблицы под пароли такой длины становиться практически нереально задачей (в наше время по крайней мере).
0
> Чем меньше входной алфавит, тем быстрее будет сгенерирована радужная таблица, но и паролей по заданным хэшам найдется меньше.
Я бы отметил еще и фактор объема полученных данных. А то помню таблицы по 100-200 ГБ и более…
Я бы отметил еще и фактор объема полученных данных. А то помню таблицы по 100-200 ГБ и более…
0
Интересно на сколько быстрее будет реализация на с++ или java
+1
Вы сами написали, что MySQL не очень подходит для хранения радужных таблиц. Зачем вы тогда его использовали? Не проще ли записать результат в файлы?
+2
Я выбрал наиболее простые инструменты, чтобы написать быстрее и чтобы материал был наиболее понятен.
Как записывать в файлы — это пожалуй вопрос отдельной статьи. Если грубо записать все цепочки в несколько файлов, то в генерации прирост скорости будет, но поиск будет неадекватно долгим.
Как записывать в файлы — это пожалуй вопрос отдельной статьи. Если грубо записать все цепочки в несколько файлов, то в генерации прирост скорости будет, но поиск будет неадекватно долгим.
-2
я конечно дико извиняюсь, но что это за детские ошибки в циклах? приведу один пример, ибо такое не в одном месте.
define('WORD_LENGTH', 6); // длина паролей, для которых строится радужная таблица
for($i = 1; $i < WORD_LENGTH; ++$i) {
$word .= $ALPHABET[mt_rand(0, $LAST_SYMBOL)];
}
на выходе получаем длину 5, никак не 6.
define('WORD_LENGTH', 6); // длина паролей, для которых строится радужная таблица
for($i = 1; $i < WORD_LENGTH; ++$i) {
$word .= $ALPHABET[mt_rand(0, $LAST_SYMBOL)];
}
на выходе получаем длину 5, никак не 6.
-2
На дворе 2012 год, bcrypt для надёжного шифрования паролей появился 13 лет назад. Что заставляет хранить пароли в хешах?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Радужные таблицы в домашних условиях