Генератор Argon2
Создайте хеш пароля Argon2id со случайной солью размером 16 байт и выбранными параметрами памяти, числа итераций, параллелизма и длины хеша. Объем памяти ограничен 64 MiB, а число итераций — 4; значения по умолчанию соответствуют базовому уровню OWASP: 19 MiB и 2 прохода. Инструмент возвращает стандартную строку PHC, начинающуюся с $argon2id$v=19$, которую проверяют PHP, libsodium и библиотеки argon2. Пароль никогда не отображается.
Часто задаваемые вопросы
Что такое Argon2id?
Argon2 победил в конкурсе хеширования паролей в 2015 и описан в RFC 9106. Argon2id — гибридный вариант, устойчивый как к атакам по сторонним каналам, так и к атакам с использованием GPU. Именно этот вариант OWASP и RFC рекомендуют для хранения паролей.
Что означают параметры памяти, числа итераций и параллелизма?
Память задает, сколько MiB выделяется для каждого хеша, число итераций — сколько проходов выполняется по этой памяти, а параллелизм — количество потоков. Большие объем памяти и число итераций повышают стоимость каждой попытки для злоумышленника. Здесь объем памяти можно задать от 1 до 64 MiB, число итераций — от 1 до 4, а параллелизм — от 1 до 4.
Какие параметры выбрать?
По умолчанию используются 19 MiB, 2 итерации и 1 поток — минимальные значения OWASP для Argon2id. В PHP по умолчанию используются 64 MiB и 4 итерации; эти значения также можно задать здесь. В рабочей среде используйте столько памяти на каждый вход в систему, сколько могут выделить ваши серверы.
Почему объем памяти и число итераций ограничены?
Каждый хеш действительно выделяет запрошенный объем памяти и выполняет каждый проход на общем сервере. Ограничения в 64 MiB и 4 итерации позволяют выполнять каждый запрос за доли секунды и при этом охватывают типичные параметры для рабочей среды.
Что содержит выходная строка?
В результате, например $argon2id$v=19$m=19456,t=2,p=1$ с последующими солью и хешем перечислены вариант, версия, объем памяти в KiB, число итераций и количество потоков. Соль и хеш представлены в формате Base64 без дополнения. Сохраните строку целиком: при проверке из нее считываются все параметры.
Почему хеш каждый раз разный?
В каждом запросе используется новая случайная соль размером 16 байт, поэтому один и тот же пароль каждый раз дает разную строку. Все такие строки успешно проходят проверку с правильным паролем.
Можно ли выбрать длину хеша?
Да, от 16 до 64 байт; значение по умолчанию — 32 байта. Более длинные теги не затрудняют подбор, поэтому для хранения паролей достаточно 32 байт.
Какие системы принимают эти хеши?
PHP password_verify, crypto_pwhash_str_verify из libsodium, пакет argon2 для Node.js, argon2-cffi для Python и Spring Security читают формат PHC string. Argon2 Verifier на этом сайте тоже проверяет их.
Сохраняется или возвращается ли мой пароль?
Нет. Пароль используется только в памяти для вычисления хеша и удаляется из ответа. Он никогда не записывается в журнал и не сохраняется.
Можно ли создавать хеши Argon2i или Argon2d?
Нет. Инструмент создает только Argon2id, поскольку этот вариант рекомендуется для паролей. Argon2 Verifier при этом принимает хеши Argon2i и Argon2d.