- Главная
- Шифрование
- Argon2
Генератор и проверка хешей Argon2
Хеширует и проверяет пароли с помощью Argon2id — современного стандарта хеширования паролей.
Хешировать пароль
Введите пароль — здесь появится его хеш.
Параметры
m=19456 в хеше (КиБ)
Полосы памяти. Здесь они выполняются одна за другой, а сервер может выполнять их параллельно. Параметр меняет хеш, поэтому задайте то же значение, что на сервере.
16 новых случайных байт для каждого хеша.
Проверить пароль по хешу
Строка PHC: $argon2id$, $argon2i$ или $argon2d$. Параметры считываются из неё.
Введите пароль и хеш, чтобы проверить их.
Argon2 победил в конкурсе Password Hashing Competition и стандартизирован в RFC 9106. Он намеренно медленный и требует много памяти, из-за чего подбор паролей на GPU обходится дорого. Эта страница создаёт хеш Argon2 с выбранными вами параметрами — в виде строки PHC, которую хранят библиотеки для работы с паролями ($argon2id$v=19$m=…,t=…,p=…$salt$hash), и в виде «сырого» hex — и проверяет пароль по существующей строке PHC. Всё работает в браузере, поэтому пароль не покидает ваше устройство; бесплатно и без регистрации.
Как создать и проверить хеш Argon2
- Введите пароль. Хеш появляется прямо во время ввода вместе со временем, которое ушло на него на вашем устройстве.
- Выберите пресет или задайте память, число итераций и параллелизм, как на вашем сервере.
- Скопируйте строку PHC или «сырые» хеш и соль в hex.
- Чтобы проверить сохранённый хеш, вставьте его вместе с паролем в блок «Проверить пароль по хешу»: вы увидите «Совпадает» или «Не совпадает».
Возможности
- Argon2id (по умолчанию), Argon2i и Argon2d, версия 19
- Пресеты: минимум OWASP (19 МиБ, t=2, p=1), RFC 9106 с малым объёмом памяти (64 МиБ, t=3, p=4) и «Высокий» (256 МиБ, t=3, p=4)
- Память от 1 МиБ до 1 ГиБ, итерации 1–16, параллелизм 1–16, длина хеша 4–128 байт
- Случайная 16-байтовая соль или своя — в виде текста, hex или Base64 (8–1024 байта)
- Строка PHC, а также «сырые» хеш и соль в hex — у каждого значения своя кнопка «Копировать»
- Проверка строк $argon2id$, $argon2i$ и $argon2d$ (v=19 или v=16) с чтением параметров из самого хеша
Это конфиденциально?
Да. Argon2 работает в браузере на WebAssembly в фоновом потоке, а соль создаёт безопасный генератор случайных чисел браузера. Пароль никуда не загружается и не сохраняется.
Частые вопросы
Argon2id, Argon2i или Argon2d?
Используйте Argon2id. Для паролей его рекомендуют и RFC 9106, и OWASP: он сочетает устойчивость Argon2i к атакам по сторонним каналам с устойчивостью Argon2d к взлому на GPU. Другой вариант выбирайте только для совместимости с существующей системой.
Какие память, число итераций и параллелизм выбрать?
Минимум OWASP для Argon2id — 19 МиБ, 2 итерации, 1 поток. RFC 9106 при ограниченной памяти предлагает 64 МиБ, 3 итерации и 4 потока. Больше памяти — сильнее защита; увеличивайте её, пока один хеш не будет занимать столько времени, сколько ваш сервер может позволить себе на каждый вход.
Argon2 или bcrypt?
Для новой системы — Argon2id. Оба намеренно медленные, но Argon2 ещё и требует много памяти, из-за чего взлом на GPU обходится дорого, и у него нет ограничения на длину пароля в 72 байта. Bcrypt старше, поддерживается почти везде и по-прежнему остаётся разумным выбором там, где Argon2 недоступен.
Что такое строка PHC $argon2id$?
Так эталонная реализация Argon2 хранит хеш: вариант, версия (v=19), память в КиБ (m), число итераций (t), число потоков (p), затем соль и хеш в Base64 без дополнения. Строки, созданные здесь, посимвольно совпадают с тем, что записывает эталонная библиотека (libargon2) для тех же входных данных, и их принимает crypto_pwhash_str_verify из libsodium (Argon2id и Argon2i с хешем от 16 байт).
Почему нельзя использовать больше 1 ГиБ памяти?
Хеш вычисляется внутри вкладки браузера, где память WebAssembly ограничена: одно выделение не может достичь 2 ГиБ, а телефоны часто отказывают и при гораздо меньшем объёме. Поэтому страница останавливается на 1 ГиБ, и хеши, которым нужно больше (например, вариант RFC 9106 с 2 ГиБ), здесь нельзя ни создать, ни проверить.