비밀번호 해시 디코더

비밀번호 해시는 솔트와 구성 가능한 작업 팩터를 가진 단방향 함수를 사용하여 자격 증명을 안전하게 저장합니다. 이 도구는 Modular Crypt Format(MCF), PHC String Format, LDAP 스키마의 해시를 자동 감지하고 파싱하여 알고리즘, 매개변수, 솔트, 해시 출력 및 보안 평가를 표시합니다.

사양

주요 사용 사례

  • 데이터베이스가 비밀번호에 사용하는 해싱 알고리즘 식별
  • 침투 테스트 또는 보안 검토 중 비밀번호 해시 보안 감사
  • bcrypt 비용 팩터와 Argon2 매개변수가 OWASP 권장 사항을 충족하는지 확인
  • LDAP 디렉토리 비밀번호 저장 스키마 이해
  • 해시 형식 및 매개변수를 검사하여 인증 문제 디버깅

기능

  • MCF ($1$, $2b$, $5$, $6$, $sha1$, $apr1$), PHC ($argon2id$, $scrypt$, $pbkdf2$), LDAP ({SSHA}, {SHA}, {MD5}) 형식 자동 감지
  • 알고리즘, 변형, 매개변수(비용, 라운드, 메모리, 병렬성), 솔트, 해시 출력 표시
  • 보안 평가: 심각(MD5/솔트 없음), 취약(SHA-1/낮은 비용), 보통(SHA-crypt), 강함(bcrypt 12+/argon2/scrypt)
  • 색상 코딩된 보안 평가 권장 사항
  • 해시 인코딩 형식 표시(base64, hex 등)
  • 여러 줄 입력에서 다중 해시 파싱
  • 해시 비트 길이 및 인코딩 형식 표시
  • 각 알고리즘의 관련 사양 링크

예제

bcrypt 비밀번호 해시

사용해 보기 →

비용 팩터 12의 bcrypt 해시 -- 새 애플리케이션에 권장되는 최소값.

$2b$12$LJ3m4ys3Lg2VBe5E5Ij25eNsaDl3JK8i3pg7jBepGQhWcqMpqXA4q

Argon2id 비밀번호 해시

사용해 보기 →

64 MB 메모리, 3회 반복, 4 스레드의 Argon2id -- 현재 모범 사례.

$argon2id$v=19$m=65536,t=3,p=4$c29tZXNhbHQ$RdescudvJCsgt3ub+b+daw

  • bcrypt 비용 팩터 12 이상이 OWASP에 의해 권장됩니다. 각 증가는 계산 시간을 두 배로 늘립니다.
  • Argon2id는 현재 모범 사례입니다 -- 사이드 채널 저항(argon2i)과 GPU 저항(argon2d)을 결합합니다.
  • LDAP {SSHA}는 솔트된 SHA-1입니다 -- {SHA}보다 낫지만 여전히 빠른 해시입니다. bcrypt 또는 Argon2로 마이그레이션하세요.
  • Encode As 패널에서 비밀번호 해싱 출력을 붙여넣어 여기서 디코딩하고 확인하세요.

이해하기 비밀번호 해시 디코더

비밀번호 해싱은 비밀번호를 평문 대신 단방향 암호화 해시로 저장하는 관행입니다. 사용자가 비밀번호를 설정하면 시스템은 이를 해싱하고 해시를 저장합니다. 로그인 시 시스템은 제출된 비밀번호를 해싱하고 결과를 저장된 해시와 비교합니다. 해시 함수가 단방향이기 때문에 해시 데이터베이스를 획득한 공격자는 비밀번호를 직접 복구할 수 없습니다.

현대 비밀번호 해싱 알고리즘은 무차별 대입 공격에 저항하기 위해 의도적으로 느리고 메모리를 많이 사용합니다. bcrypt는 각 증가가 계산 시간을 두 배로 늘리는 구성 가능한 비용 팩터를 사용합니다. Argon2(2015년 Password Hashing Competition 우승자)는 GPU 기반 공격에 저항하기 위해 구성 가능한 메모리 사용을 추가합니다. scrypt도 상당한 메모리를 요구합니다. 이러한 "느린 해시"는 속도를 위해 설계되어 비밀번호 저장에 부적합한 빠른 해시(MD5, SHA-256)와 근본적으로 다릅니다.

비밀번호 해시는 이식성을 위해 표준화된 문자열 형식을 사용합니다. Modular Crypt Format(MCF)은 $ 구분자를 사용합니다: bcrypt의 경우 $2b$12$..., SHA-256-crypt의 경우 $5$, SHA-512-crypt의 경우 $6$. PHC String Format(Argon2에서 사용)은 명명된 매개변수를 추가합니다: $argon2id$v=19$m=65536,t=3,p=4$salt$hash. LDAP 시스템은 스키마 접두사를 사용합니다: {SSHA}, {PBKDF2}.

각 해시에는 솔트가 포함됩니다 -- 해싱 전에 비밀번호와 결합되는 랜덤 데이터로, 동일한 비밀번호가 서로 다른 해시를 생성하도록 보장합니다. 솔트 없이는 공격자가 미리 계산된 레인보우 테이블을 사용하여 일반적인 비밀번호 해시를 즉시 조회할 수 있습니다. 솔트는 해시와 함께 저장되며(비밀이 아님) 각 비밀번호마다 랜덤으로 생성됩니다.

새 애플리케이션의 경우 Argon2id가 OWASP에서 권장하는 현재 모범 사례입니다. 프레임워크에서 Argon2를 사용할 수 없는 경우 비용 팩터 12 이상의 bcrypt가 차선책이며, scrypt도 허용됩니다. MD5, SHA-1, 단순 SHA-256은 비밀번호에 절대 사용해서는 안 됩니다 -- 너무 빠르며 현대 GPU에서 초당 수십억 번의 시도로 무차별 대입될 수 있습니다. MD5는 특히 빠른 체크섬 알고리즘으로 설계되었으며 비밀번호 저장용이 아니고, 알려진 충돌 취약점이 있습니다. 솔트 없는 MD5 해시는 레인보우 테이블 공격에도 취약합니다.

bcrypt 비용 팩터($2b$ 뒤의 숫자)는 계산 시간을 제어하는 지수입니다. 비용 10은 2^10 = 1,024회 반복을 의미하고, 비용 12는 2^12 = 4,096회 반복을 의미합니다 -- 비용 10보다 4배 느립니다. OWASP는 비용 12를 최소값으로 권장합니다. 각 증가는 시간을 두 배로 늘리므로 10에서 12로 증가하면 서버와 모든 공격자 모두에게 해싱이 4배 느려집니다.

솔트와 페퍼는 비밀번호 보안에서 서로 다른 역할을 합니다. 솔트는 해시와 함께 저장되는 랜덤 데이터로, 비밀번호별로 고유하며 동일한 비밀번호가 서로 다른 해시를 생성하도록 보장합니다 -- 솔트는 비밀이 아닙니다. 페퍼는 모든 비밀번호에 적용되는 비밀 키(일반적으로 HMAC를 통해)로, 데이터베이스와 별도로 애플리케이션 구성이나 하드웨어 보안 모듈에 저장됩니다. 데이터베이스가 손상되었지만 페퍼가 손상되지 않은 경우, 공격자는 솔트가 있어도 해시를 크래킹할 수 없습니다. 둘 다 사용하면 심층 방어를 제공합니다.

← 전체 도구로 돌아가기