Toolonit
  1. 홈
  2. 암호화
  3. Argon2 해시

Argon2 해시

최신 비밀번호 해시 표준 Argon2id로 해시를 만들고 검증합니다.

비밀번호 해시 만들기

비밀번호를 입력하면 여기에 해시가 나타납니다.

매개변수

종류
프리셋
메모리

해시에는 m=19456(KiB)

반복 횟수
병렬도

메모리 레인 수입니다. 여기서는 차례로 계산하지만 서버는 동시에 돌릴 수 있습니다. 해시가 달라지므로 서버 설정과 맞추세요.

해시 길이
솔트

해시할 때마다 새 무작위 16바이트.

비밀번호와 해시 대조

PHC 문자열: $argon2id$, $argon2i$, $argon2d$. 매개변수는 해시에서 읽습니다.

비밀번호와 해시를 입력하면 맞는지 확인합니다.

Argon2는 Password Hashing Competition 우승 알고리즘으로 RFC 9106에 표준으로 정리되었습니다. 일부러 느리고 메모리를 많이 쓰게 만들어 GPU로 비밀번호를 대입하는 비용을 크게 높입니다. 이 페이지는 고른 매개변수로 Argon2 해시를 만들어 비밀번호 라이브러리가 저장하는 PHC 문자열($argon2id$v=19$m=…,t=…,p=…$솔트$해시)과 16진수 원본 해시로 보여 주고, 기존 PHC 문자열과 비밀번호가 맞는지도 검증합니다. 브라우저 안에서 계산하므로 비밀번호가 기기 밖으로 나가지 않으며, 무료이고 가입도 필요 없습니다.

Argon2 해시 만들고 검증하는 방법

  1. 비밀번호를 입력하면 바로 해시와 이 기기에서 걸린 시간이 나타납니다.
  2. 프리셋을 고르거나 서버 설정에 맞춰 메모리·반복 횟수·병렬도를 조절합니다.
  3. PHC 문자열, 또는 16진수 해시와 솔트를 복사합니다.
  4. 저장된 해시를 확인하려면 비밀번호와 해시 대조에 비밀번호와 해시를 넣습니다. 일치 또는 불일치가 표시됩니다.

주요 기능

  • Argon2id(기본), Argon2i, Argon2d, 버전 19
  • 프리셋: OWASP 최소(19MiB, t=2, p=1), RFC 9106 저메모리(64MiB, t=3, p=4), 높음(256MiB, t=3, p=4)
  • 메모리 1MiB–1GiB, 반복 1–16, 병렬도 1–16, 해시 길이 4–128바이트
  • 무작위 16바이트 솔트, 또는 텍스트·16진수·Base64로 직접 입력한 솔트(8–1024바이트)
  • PHC 문자열과 16진수 해시·솔트를 각각 복사
  • $argon2id$·$argon2i$·$argon2d$ 문자열(v=19, v=16) 검증, 매개변수는 해시에서 읽음

개인정보는 안전한가요?

네. Argon2는 브라우저 안에서 WebAssembly로, 백그라운드 워커에서 계산하며 솔트는 브라우저의 안전한 난수 생성기로 만듭니다. 비밀번호는 업로드하거나 저장하지 않습니다.

자주 묻는 질문

Argon2id, Argon2i, Argon2d 중 무엇을 써야 하나요?

Argon2id를 쓰세요. RFC 9106과 OWASP 모두 비밀번호용으로 권장합니다. Argon2i의 부채널 공격 저항과 Argon2d의 GPU 크래킹 저항을 함께 갖습니다. 다른 종류는 기존 시스템에 맞춰야 할 때만 고르세요.

메모리, 반복 횟수, 병렬도는 얼마로 해야 하나요?

OWASP가 제시한 Argon2id 최소값은 19MiB, 반복 2회, 레인 1개입니다. RFC 9106은 메모리가 넉넉하지 않을 때 64MiB, 반복 3회, 레인 4개를 권합니다. 메모리를 늘리는 것이 가장 강한 보호이므로, 서버가 로그인 한 번에 감당할 수 있는 시간이 될 때까지 올리세요.

Argon2와 bcrypt 중 무엇이 좋은가요?

새 시스템이라면 Argon2id입니다. 둘 다 일부러 느리지만 Argon2는 메모리도 많이 써서 GPU로 대입하는 비용이 크고, 72바이트 비밀번호 한도도 없습니다. bcrypt는 더 오래되어 거의 모든 곳에서 지원되며, Argon2를 쓸 수 없는 곳에서는 여전히 괜찮은 선택입니다.

$argon2id$ PHC 문자열이란 무엇인가요?

Argon2 참조 구현이 해시를 저장하는 형식입니다. 종류, 버전(v=19), KiB 단위 메모리(m), 반복 횟수(t), 레인 수(p), 그리고 패딩 없는 Base64로 쓴 솔트와 해시가 차례로 들어갑니다. 여기서 만든 문자열은 같은 입력에 대해 참조 라이브러리(libargon2)가 쓰는 문자열과 글자 하나까지 같고, libsodium의 crypto_pwhash_str_verify로도 검증됩니다(Argon2id·Argon2i, 해시 16바이트 이상).

메모리를 1GiB보다 크게 할 수 없는 이유는요?

해시를 브라우저 탭 안에서 계산하는데, WebAssembly 메모리에는 한계가 있습니다. 한 번에 2GiB를 할당할 수 없고, 휴대폰은 훨씬 적은 양도 거절하곤 합니다. 그래서 이 페이지는 1GiB까지만 쓰며, 그보다 많은 메모리를 요구하는 해시(RFC 9106의 2GiB 권장값 등)는 여기서 만들거나 검증할 수 없습니다.

관련 도구