Генератор легко запоминающихся паролей / PHP Yii User Friendly Easy-To-Remember Password Generator

На днях поднялся вопрос об автоматической генерации паролей для новых пользователей. Случайные пароли типа md5(microtime()) выглядят так «7da5cfab54ae10eb6f1e4b44bf6204b9» и их невозможно запомнить. На листочек не запишешь, а тем более не передашь по телефону.

Сразу же отмечу, что сообщать свой пароль кому-бы то ни было или записывать его на листочке — это очень плохо. Пароль должен сохраняться в тайне. Но это не мешает делать пароли хорошо запоминающимися.

Мне захотелось создать более дружелюбные, легко запоминающиеся пароли. Чтобы их читали весело, задорно, с огоньком и сразу же запоминали.

Первый генератор, который я взял, был первым в Google по фразе «php userfriendly password generator» и поверьте, он не очень дружелюбен, потому что генерирует так же случайный набор букв. В комментариях к нему указана забавная картинка-комикс http://xkcd.com/936/, в которой показано, что случайный набор символов невозможно запомнить, а подобрать можно очень быстро (3 дня на пароль из 11 символов с буквами, цифрами и знаками препинания). Пароль из четырёх случайных слов общей длиной 25 символов подобрать почти невозможно (550 лет).

Примечание: если известно, что пароль содержит только слова из словаря, то он подбирается намного быстрее, чем за 550 лет, но точное время сказать  не могу.

Моё решение для генератора легко запоминаемых паролей

Я взял 750 английских прилагательных из словарей и извлёк около 25000 однословных английских тегов длиной от 5 до 9 символов с instagramm, в которых используются только буквы латинского алфавита. Там правда часто встречаются аббревиатуры типа PHP, Yii, WTF.

Пароль составляется по шаблону, включающему строки «{static}», «{number}», «{dynamic}», которые соответственно заменяются на случайное слово из словаря прилагательных, случайное число и случайное слово из тегов.

Базовый шаблон для пароля: «{число}{прилагательное}{число}{тег}{число}» даёт пароль вида «16ugly29private54″, который хоть и не легко, но можно запомнить и при такой длине достаточно долго перебирать при взломе.

Вариант шаблона «{прилагательное}{тег}{тег}{тег}» как раз соответствует паролю «correct horse battery staple» из картинки http://xkcd.com/936/ который я сейчас по памяти написал (ставь лайк, если проверил по картинке 🙂 )

Код генератора удобных паролей на PHP

Получайте код PHP userfriendly password generator на gist.com (он написан под фреймворк Yii — по отдельной просьбе могу перевести на другой или написать на чистом PHP). Исключительно для разнообразия часть данных из словарей хранится в файле, часть — в базе данных. Если есть желание, можно сделать оба словаря в файлах или оба в базе данных. Также можно ввести поддержку страшных неуклюжих символов в разных регистрах и знаков препинания, но я намеренно не включал их, потому что тогда пароль будет трудным для запоминания.

Генератор паролей онлайн
20 октября 2014 года. Дополнение: создал генератор паролей по описанному алгоритму
попробовать

В тему этого поста хочу вспомнить вот такую забавную историю про пароль:

xxx: У меня как то на служебном ноутбуке был пароль «семидесятипятимиллиметровый». Я его вслепую набирал всегда буквально за три секунды. Начальнику один раз понадобился ноутбук, пока я был в отпуске. Он мне потом сказал «Ты псих и параноик, три человека не могли правильно его ввести».bash.im

 

Павел Волынцев

Уже более 15 лет занимаюсь разработкой веб-проектов. Fullstack Senior Developer. IT евангелист — доношу свет знаний об информационных технологиях. Профессиональные цели: Дать людям возможность дать людям больше.

Читайте также:

  • Dukakis

    ну и почему бы не сделать такой сервис онлайн? я пользуюсь dinopass.com)

    • Да, надо сделать. На эту страницу часто стали заходить. И мне самому часто требуются такие пароли. Я выдеру этот кусок из текущего проекта icons8.com и сделаю отдельный сервис на моём сайте.

    • Готово: http://mindpasswd.ru/

      • Dukakis

        круто выглядит! вы сами делали дизайн?

        • Спасибо, приятно что результат нравится.
          Да, дизайн я придумал сам. Очень надеялся, что понравится. Поделишься с друзьями ссылкой? 😉

  • 20 октября 2014 года. Дополнение: генератор паролей по описанному алгоритму доступен на странице mindpasswd.ru.

    • Перевёл на английский : mindpasswd.com

  • Сегодня две статьи прочитал про пароли — очень интересные. Первая от лаборатории Касперского: https://blog.kaspersky.ru/howto-remember-strong-passwords/ как запомнить надёжные пароли (сейчас он что-то лежит мертвяком с 504 ошибкой)

    Вторая — на английском http://www.baekdal.com/insights/password-security-usability про оценку времени на подбор пароля по словарям

    Вывод: можно увеличить размер словаря, уменьшить количество «искривлений» слов и дать возможность визуально представить пароль.

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

  • SimyriK

    Перестал открываться сайт http://mindpasswd.ru/ — очень жаль. Постоянно пользовался данным сервисом.

    • Спасибо что пользовались.
      Я не продлил домен, больше он не работает.

      • SimyriK

        Очень жаль. А может есть возможность завернуть на поддомен? К примеру mindpasswd.оcopist.ru?)

        • Да, пожалуй можно. Спасибо за подсказку.