Argon2 생성기
무작위 16바이트 솔트를 사용하고 메모리, 반복 횟수, 병렬 처리 및 해시 길이를 직접 설정해 Argon2id 비밀번호 해시를 생성하세요. 메모리는 64 MiB, 반복 횟수는 4회로 제한되며 기본값은 OWASP 기준인 19 MiB와 2회입니다. 도구는 $argon2id$v=19$로 시작하는 표준 PHC 문자열을 반환하며, PHP, libsodium 및 argon2 라이브러리에서 검증할 수 있습니다. 비밀번호는 응답에 표시되지 않습니다.
자주 묻는 질문
Argon2id란 무엇인가요?
Argon2는 2015에서 비밀번호 해싱 대회에서 우승했으며 RFC 9106에 명시되어 있습니다. Argon2id는 사이드 채널 공격과 GPU 공격 모두에 강한 하이브리드 변형입니다. OWASP와 RFC가 비밀번호 저장용으로 권장하는 변형입니다.
메모리, 반복 횟수, 병렬 처리 설정은 무엇을 의미하나요?
메모리는 해시 하나가 사용하는 MiB 용량을, 반복 횟수는 해당 메모리를 처리하는 횟수를, 병렬 처리는 레인 수를 설정합니다. 메모리와 반복 횟수가 높을수록 공격자가 비밀번호를 추측하는 데 더 많은 비용이 듭니다. 여기서는 메모리를 1~64 MiB, 반복 횟수를 1~4회, 병렬 처리를 1~4로 설정할 수 있습니다.
어떤 설정을 사용해야 하나요?
기본값은 19 MiB, 반복 2회, 레인 1개로 Argon2id에 대한 OWASP 최소 기준입니다. PHP의 기본값은 64 MiB와 반복 4회이며, 여기서도 같은 설정을 사용할 수 있습니다. 운영 환경에서는 로그인마다 서버가 할당할 수 있는 메모리를 최대한 사용하세요.
메모리와 반복 횟수에 상한을 둔 이유는 무엇인가요?
각 해시는 요청한 만큼의 메모리를 실제로 할당하고 공유 서버에서 모든 반복을 실행합니다. 64 MiB와 4회로 제한하면 일반적인 운영 환경 설정을 지원하면서도 각 요청을 1초 미만으로 처리할 수 있습니다.
출력 문자열에는 무엇이 포함되나요?
$argon2id$v=19$m=19456,t=2,p=1$와 같은 결과 뒤에 솔트와 해시가 이어지며, 변형, 버전, KiB 단위 메모리, 반복 횟수, 레인 수를 나타냅니다. 솔트와 해시는 패딩 없는 Base64 형식입니다. 검증 시 모든 매개변수를 읽으므로 문자열 전체를 저장하세요.
해시가 매번 달라지는 이유는 무엇인가요?
요청마다 새로운 무작위 16바이트 솔트를 사용하므로 같은 비밀번호도 매번 다른 문자열을 생성합니다. 올바른 비밀번호를 사용하면 어느 문자열이든 검증됩니다.
해시 길이를 선택할 수 있나요?
네. 16~64바이트 중에서 선택할 수 있으며 기본값은 32바이트입니다. 태그가 길어져도 비밀번호 추측이 더 어려워지지는 않으므로 비밀번호 저장에는 32바이트면 충분합니다.
이 해시를 지원하는 시스템은 무엇인가요?
PHP password_verify, libsodium의 crypto_pwhash_str_verify, Node.js용 argon2 패키지, Python용 argon2-cffi, Spring Security는 모두 PHC 문자열 형식을 읽습니다. 이 사이트의 Argon2 Verifier도 이를 확인합니다.
비밀번호가 저장되거나 반환되나요?
아니요. 비밀번호는 해시를 계산하는 동안 메모리에서만 사용되며 응답에서 제거됩니다. 로그에 기록하거나 저장하지 않습니다.
Argon2i 또는 Argon2d 해시를 생성할 수 있나요?
아니요. 비밀번호에 권장되는 변형이므로 이 도구는 Argon2id만 생성합니다. Argon2 Verifier에서는 Argon2i 및 Argon2d 해시도 확인할 수 있습니다.