В одном проекте появилась необходимость генерации надежного пароля на клиенте. Поискал готовое решение, но ничего подходящего не нашел.
Все библиотеки, которые нашлись, не подходили по ряду причин — генерировали пароль просто по желаемой длине, отсутствовала возможность проверки надёжности пароля. Решено было писать свой «велосипед» — как альтернативное решение, да и опыт лишним не будет. В итоге получилась библиотечка PassGenJS.
Что под капотом:
- Нет зависимостей
- Генерация пароля по указанным параметрам (число букв, цифр, символов и т.д)
- Генерация пароля по величине надёжности (1 — слабый, 4 — сверхнадёжный)
- Генерация пароля по % надёжности (от 0 до 100%)
- Проверка надежности пароля через вычисление энтропии
Приведу несколько примеров:
Генерируем надёжный пароль:
PassGenJS.getPassword({score: 3});
// Результат - 8!G$}6&={a(_>