Хеши/крипто
Argon2 Hash + Verify
Хеширование паролей через Argon2 (победитель Password Hashing Competition, RFC 9106) — варианты d/i/id, с проверкой пароля против имеющегося хеша.
Argon2 is the Password Hashing Competition winner and the algorithm recommended in RFC 9106 for hashing passwords. Unlike bcrypt, it deliberately demands a lot of memory, not just CPU time, which makes attacks on specialized hardware (GPUs, ASICs) much harder.
How to use it
- Hash: enter a password, pick a variant (Argon2d, Argon2i, or Argon2id), and set the parameters (memory, iterations, parallelism) to get a hash.
- Verify: paste a password and an existing Argon2 hash to check whether they match, without hashing manually yourself.
- Argon2id is the recommended default for most applications — it combines the strengths of Argon2i and Argon2d.
Common uses
- Checking that a backend generates correct Argon2 hashes with the expected parameters before a release.
- Tuning memory and iteration parameters to fit within a server's response-time budget (typically 250-500ms).
- Comparing Argon2 against bcrypt or PBKDF2 when choosing an algorithm for a new project.
Things to keep in mind
The memory parameter is Argon2's main defense: the more memory hashing requires, the more expensive it is for an attacker to parallelize an attack on a GPU with limited fast memory per chip.
Argon2id is recommended for most cases: Argon2i resists side-channel attacks better, Argon2d resists GPU attacks better, and id combines both approaches.
Статья об этом инструменте: 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.
Только ли ускоряет хеширование параметр параллелизма?
Нет, тот же параметр так же ускоряет перебор для злоумышленника с многоядерным оборудованием, поэтому параллелизм стоит подбирать в соответствии с реальным количеством ядер сервера, а не увеличивать без необходимости.