Генератор на Argon2
Генерирайте Argon2id хеш на парола с произволен 16-байтов salt и избрани от вас памет, итерации, паралелизъм и дължина на хеша. Паметта е ограничена до 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$, последван от salt и хеша, указва варианта, версията, паметта в KiB, итерациите и нишките. Salt и хешът са в непадирана форма на Base64. Съхранявайте целия низ, защото при проверката от него се прочита всеки параметър.
Защо хешът е различен всеки път?
При всяка заявка се използва нов произволен 16-байтов salt, затова една и съща парола създава различен низ всеки път. Всички тези хешове се потвърждават с правилната парола.
Мога ли да избера дължината на хеша?
Да, от 16 до 64 байта; стойността по подразбиране е 32 байта. По-дългите тагове не затрудняват отгатването, затова 32 байта са достатъчни за съхранение на пароли.
Кои системи приемат тези хешове?
PHP password_verify, crypto_pwhash_str_verify на libsodium, пакетът argon2 за Node.js, argon2-cffi за Python и Spring Security четат формата PHC string. Верификаторът Argon2 на този сайт проверява и тях.
Съхранява ли се паролата ми или се връща в отговора?
Не. Паролата се използва само в паметта за изчисляване на хеша и се премахва от отговора. Никога не се записва в лог или не се запазва.
Мога ли да генерирам хешове Argon2i или Argon2d?
Не. Инструментът създава само Argon2id, тъй като това е препоръчителният вариант за пароли. Верификаторът Argon2 все пак приема хешове Argon2i и Argon2d.