Генерация Паролей Xkcd В Php

Знаменитый комикс xkcd рассказывает нам, что пароль, состоящий из 4 часто используемых слов, легко запомнить и сложно угадать.



Генерация паролей xkcd в PHP

Перевод , оригинальный Все текущие реализации этого метода генерации паролей рассчитаны на английские слова, а это означает, что русскоязычным сложнее запомнить пароли.

Я вооружился частотным словарем русского языка и сделал PHP-библиотеку, поддерживающую генерацию паролей из нескольких наборов слов:

  • Английские слова (например, «критик идеи счастливый китайский»);
  • русские слова (например, «порошок земли ноль платье»);
  • транслитерированные русские слова (например, «высота разума бумажка размер»).

Списки кодов и слов на GitHub .



Установка с помощью композитора

  
  
  
   

{ "require": { "barzo/password-generator": "dev-master" } }



Генерация пароля

Пароли генерируются статической функцией Генератор::генерировать , который принимает три параметра: список слов, длину пароля (количество слов) и разделитель слов.

Например, генерация пароля из 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 наиболее часто используемых слов английского языка на основе корпус современного американского английского языка .

Пример вывода — критик идеи счастливый китаец .



Русские слова (WordList\Ru)
Список из 2048 наиболее часто употребляемых русских существительных на основе национальный корпус русского языка .

Пример вывода — платье Powder Earth Zero .



Русский транслит (WordList\RuTranslit)
Список из 2048 слов на основе предыдущего списка, из которого исключены слова, содержащие неоднозначные для транслитерации буквы (ц, щ, ь, ъ).

Пример вывода — высота разума бумажка размер .



Демо

Вы можете попробовать библиотеку здесь .

Реализация с этими списками слов в JS ( источники , автор - переведко ).

Теги: #xkcd #пароли #php #информационная безопасность #php

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.