- PVSM.RU - https://www.pvsm.ru -
Известный комикс xkcd подсказывает нам, что пароль, который состоит из 4 часто употребляемых слов — легко запомнить и сложно подобрать.
Все текущие реализации этого метода генерации паролей рассчитаны на английские слова, а значит пароли сложнее запомнить русскоязычным. Я вооружился частотным словарем русского языка, и сделал PHP библиотеку, которая поддерживает генерацию паролей из нескольких наборов слов:
Код и списки слов на GitHub [3].
{
"require": {
"barzo/password-generator": "dev-master"
}
}
Пароли генерирует статическая функция Generator::generate, которая принимает три параметра: список слов, длину пароля (количество слов) и разделитель слов. Например, генерации пароля из 5 транслитерированных слов разделенных дефисом:
$wordList = new BarzoPasswordWordListRuTranslit();
echo Generator::generate($wordList, 5, '-');
Вывод будет содержать строку похожую на:
dovod-gore-sever-nomer-druzhka
Для каждого списка слов есть синоним для быстрого вызова:
echo BarzoPasswordGenerator::generateEn();
echo BarzoPasswordGenerator::generateRuTranslit();
echo BarzoPasswordGenerator::generateRu();
Список из 2048 наиболее часто используемых слов английского языка на основании корпуса современного американского английского [4].
Пример вывода — idea critic happy chinese.
Список из 2048 наиболее часто используемых русских имен существительных на основании национального корпуса русского языка [5].
Пример вывода — порошок земля нуль платье.
Список из 2048 слов на основании предыдущего списка, из которого исключены слова, которые содержат неоднозначные для транслитерации буквы (ц, щ, ь, ъ).
Пример вывода — vysota razum bumazhka razmer.
Попробовать библиотеку можно тут [6].
Автор: PatapSmile
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/66719
Ссылки в тексте:
[1] Перевод: http://xkcd.ru/936/
[2] оригинал: http://xkcd.com/936/
[3] на GitHub: https://github.com/denys-potapov/password-generator
[4] корпуса современного американского английского: http://www.wordfrequency.info/top5000.asp
[5] национального корпуса русского языка: http://dict.ruslang.ru/freq.php
[6] тут: http://denyspotapov.com/password/
[7] Источник: http://habrahabr.ru/post/232157/
Нажмите здесь для печати.