Хеши/крипто
Argon2 Hash + Verify
Хеширование паролей через Argon2 (победитель Password Hashing Competition, RFC 9106) — варианты d/i/id, с проверкой пароля против имеющегося хеша.
Argon2 — победитель Password Hashing Competition и алгоритм, рекомендованный в RFC 9106 для хеширования паролей. В отличие от bcrypt, он намеренно требует много оперативной памяти, а не только времени процессора, что усложняет атаки на специализированном оборудовании (GPU, ASIC).
Как пользоваться
- Хеширование: введите пароль, выберите вариант (Argon2d, Argon2i или Argon2id) и параметры (память, итерации, параллелизм) — получите готовый хеш.
- Проверка: вставьте пароль и существующий Argon2-хеш, чтобы проверить соответствие без ручного повторного хеширования.
- Argon2id — рекомендуемый вариант по умолчанию для большинства приложений, он сочетает устойчивость Argon2i и Argon2d.
Типичные сценарии
- Проверка, что бэкенд генерирует корректные Argon2-хеши с ожидаемыми параметрами перед релизом.
- Подбор параметров памяти и итераций, укладывающихся в бюджет времени ответа сервера (обычно 250-500 мс).
- Сравнение Argon2 с bcrypt или PBKDF2 при выборе алгоритма для нового проекта.
Что стоит помнить
Параметр памяти — главная защита Argon2: чем больше памяти требует хеширование, тем дороже злоумышленнику параллелить атаку на GPU с ограниченным объёмом быстрой памяти на чип.
Argon2id рекомендуют для большинства случаев: Argon2i устойчивее к side-channel атакам, Argon2d — к GPU-атакам, а id сочетает оба подхода.
Статья об этом инструменте: Argon2: почему этот алгоритм победил в конкурсе на хеширование паролей
Часто задаваемые вопросы
Почему Argon2 рекомендуют вместо старых хешей вроде MD5 или SHA-256 для паролей?
Argon2 намеренно медленный и требователен к памяти, что делает перебор и взлом на GPU/ASIC значительно дороже — в отличие от быстрых универсальных хешей MD5 или SHA-256, непригодных для хранения паролей.
За что отвечают параметры памяти, итераций и параллелизма?
Стоимость памяти задаёт, сколько ОЗУ требуется на одну попытку хеширования, итерации — число проходов, а параллелизм — число потоков; увеличение любого из них повышает стоимость взлома, но замедляет хеширование.
Какой вариант Argon2 выбрать — d, i или id?
Argon2id — рекомендуемый вариант по умолчанию для хеширования паролей, так как сочетает устойчивость Argon2i к атакам по побочным каналам с устойчивостью Argon2d к взлому на GPU.
Откуда взялся Argon2 как стандарт?
Argon2 победил в Password Hashing Competition 2015 года — открытом конкурсе криптографов, целью которого было найти лучший алгоритм для хеширования паролей. С тех пор OWASP рекомендует его как приоритетный выбор над bcrypt.
Только ли ускоряет хеширование параметр параллелизма?
Нет, тот же параметр так же ускоряет перебор для злоумышленника с многоядерным оборудованием, поэтому параллелизм стоит подбирать в соответствии с реальным количеством ядер сервера, а не увеличивать без необходимости.