Что это такое
zxcvbn — библиотека Dropbox для оценки надежности пароля. Она вдохновлена тем, как атакующие подбирают пароли, а не тем, сколько в строке заглавных букв и символов.
Проект предлагает альтернативу раздражающим правилам вроде “обязательно три типа символов”. Вместо этого сайт может требовать минимальную оценку сложности и давать пользователю более понятную обратную связь.
Что внутри
zxcvbn распознает распространенные пароли, имена, фамилии, популярные английские слова, даты, повторения, последовательности, клавиатурные шаблоны и leet-запись.
Результат включает оценку и примерные сценарии подбора: онлайн-атака с ограничением попыток, онлайн-атака без ограничения и офлайн-подбор. Это помогает объяснить риск не только числом.
Как используют
Библиотеку подключают в форме регистрации или смены пароля. Пользователь вводит пароль, а интерфейс показывает, достаточно ли он устойчив и какие части выглядят предсказуемо.
Важно применять zxcvbn как подсказку, а не как единственную защиту. Серверное хранение паролей, хеширование, ограничение попыток и многофакторная защита остаются обязательными.
Пример
Пример показывает базовую проверку в JavaScript: пароль получает оценку, а приложение решает, пропускать ли его дальше.
Оценка пароля
Пример показывает, как получить численную оценку и использовать ее в форме регистрации.
import zxcvbn from "zxcvbn";
const result = zxcvbn(password);
if (result.score < 3) {
showWarning(result.feedback.warning || "Choose a stronger password");
}
Сильные стороны и ограничения
Сильная сторона zxcvbn — реалистичность. Он лучше видит слабые “сложные” пароли вроде замены букв символами, чем простая проверка состава строки.
Ограничение — размер и контекст. Словари и эвристики не знают всех локальных привычек пользователя, поэтому библиотека должна дополнять, а не заменять общую модель безопасности.
Контекст проекта
zxcvbn ведется в репозитории dropbox/zxcvbn; публичная история проекта начинается 2012-02-28. Основной язык, который показывает GitHub, — CoffeeScript, лицензия — MIT. Есть отдельный сайт проекта: https://www.usenix.org/conference/usenixsecurity16/technical-sessions/presentation/wheeler.
Для страницы каталога это важно как практический контекст: читатель видит не абстрактное название, а реальный проект с владельцем, лицензией, технической базой и открытой историей изменений.