PBKDF2
HMAC을 반복 횟수만큼 이어서 적용하고, 결과를 모두 XOR · 일부러 느리게
비밀번호
솔트16바이트
반복 횟수
PBKDF2
HMAC-SHA256
파생 키32바이트
계산 중…
서버에 저장하는 내용
pbkdf2-sha256$600000$a1b2c3d4e5f60718293a4b5c6d7e8f90$
로그인
입력한 비밀번호
저장된 솔트16바이트
a1b2c3d4e5f60718293a4b5c6d7e8f90저장된 반복 횟수
600,000PBKDF2
HMAC-SHA256
다시 계산한 키32바이트
계산 중…
상수 · 표준이 정해 두어 누구나 같은 값
PBKDF2-HMAC-SHA256RFC 8018 · OWASP
| 기호 | 이름 | 정의 · 출처 | 값 |
|---|---|---|---|
| PRF | 의사 난수 함수 | HMAC-SHA256 | HMAC-SHA256 |
| hLen | PRF 출력 길이 | HMAC-SHA256의 출력 | 32바이트 |
| INT(1) | 블록 번호 | 4바이트 빅 엔디언, 1부터 | 00000001 |
| dkLen | 출력 키 길이 | 이 페이지에서 쓰는 값 (블록 1개) | 32바이트 |
| c | 권장 반복 횟수 | OWASP 권장값 (PBKDF2-HMAC-SHA256) | 600,000 |
HMAC-SHA256RFC 2104 · FIPS 198-1
| 기호 | 이름 | 정의 · 출처 | 값 |
|---|---|---|---|
| B | 블록 크기 | SHA-256의 블록 크기 | 64바이트 |
| L | 출력 길이 | SHA-256의 출력 길이 | 32바이트 |
| ipad | 내부 패드 | 0x36을 B번 반복 | 36363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636 |
| opad | 외부 패드 | 0x5c를 B번 반복 | 5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c5c |