Хеші/крипто
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, непридатних для зберігання паролів.
За що відповідають параметри пам'яті, ітерацій і паралелізму?
Вартість пам'яті задає, скільки RAM потрібно для однієї спроби хешування, ітерації — кількість проходів, а паралелізм — кількість потоків; збільшення будь-якого з них підвищує вартість зламу, але сповільнює хешування.
Який варіант Argon2 обрати — d, i чи id?
Argon2id — рекомендований варіант за замовчуванням для хешування паролів, оскільки поєднує стійкість Argon2i до атак по бічних каналах зі стійкістю Argon2d до зламу на GPU.
Звідки взявся Argon2 як стандарт?
Argon2 переміг у Password Hashing Competition 2015 року — відкритому конкурсі криптографів, метою якого було знайти найкращий алгоритм для хешування паролів. Відтоді OWASP рекомендує його як пріоритетний вибір над bcrypt.
Чи параметр паралелізму лише прискорює хешування?
Ні, той самий параметр так само прискорює перебір для зловмисника з багатоядерним обладнанням, тому паралелізм варто підбирати відповідно до реальної кількості ядер сервера, а не збільшувати без потреби.