Известный комикс xkcd подсказывает нам, что пароль, который состоит из 4 часто употребляемых слов — легко запомнить и сложно подобрать.
Код и списки слов на GitHub.
Пароли генерирует статическая функция Generator::generate, которая принимает три параметра: список слов, длину пароля (количество слов) и разделитель слов. Например, генерации пароля из 5 транслитерированных слов разделенных дефисом:
Вывод будет содержать строку похожую на:
Для каждого списка слов есть синоним для быстрого вызова:
Список из 2048 наиболее часто используемых слов английского языка на основании корпуса современного американского английского.
Список из 2048 наиболее часто используемых русских имен существительных на основании национального корпуса русского языка.
Список из 2048 слов на основании предыдущего списка, из которого исключены слова, которые содержат неоднозначные для транслитерации буквы (ц, щ, ь, ъ).
Попробовать библиотеку можно тут.
Все текущие реализации этого метода генерации паролей рассчитаны на английские слова, а значит пароли сложнее запомнить русскоязычным. Я вооружился частотным словарем русского языка, и сделал PHP библиотеку, которая поддерживает генерацию паролей из нескольких наборов слов:
- английские слова (например, «idea critic happy chinese»);
- русские слова (например, «порошок земля нуль платье»);
- транслитерированные русские слова (например, «vysota razum bumazhka razmer»).
Код и списки слов на GitHub.
Установка с помощью composer
{
"require": {
"barzo/password-generator": "dev-master"
}
}
Генерация паролей
Пароли генерирует статическая функция Generator::generate, которая принимает три параметра: список слов, длину пароля (количество слов) и разделитель слов. Например, генерации пароля из 5 транслитерированных слов разделенных дефисом:
$wordList = new Barzo\Password\WordList\RuTranslit();
echo Generator::generate($wordList, 5, '-');
Вывод будет содержать строку похожую на:
dovod-gore-sever-nomer-druzhka
Для каждого списка слов есть синоним для быстрого вызова:
echo Barzo\Password\Generator::generateEn();
echo Barzo\Password\Generator::generateRuTranslit();
echo Barzo\Password\Generator::generateRu();
Списки слов
Английские слова (WordList\En)
Список из 2048 наиболее часто используемых слов английского языка на основании корпуса современного американского английского.
Пример вывода — idea critic happy chinese.
Русские слова (WordList\Ru)
Список из 2048 наиболее часто используемых русских имен существительных на основании национального корпуса русского языка.
Пример вывода — порошок земля нуль платье.
Русский транслит (WordList\RuTranslit)
Список из 2048 слов на основании предыдущего списка, из которого исключены слова, которые содержат неоднозначные для транслитерации буквы (ц, щ, ь, ъ).
Пример вывода — vysota razum bumazhka razmer.
Демо
Попробовать библиотеку можно тут.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий