PBKDF2

HMAC을 반복 횟수만큼 이어서 적용하고, 결과를 모두 XOR · 일부러 느리게

비밀번호
솔트16바이트
반복 횟수
PBKDF2
HMAC-SHA256
파생 키32바이트

계산 중…

서버에 저장하는 내용

pbkdf2-sha256$600000$a1b2c3d4e5f60718293a4b5c6d7e8f90$

로그인

입력한 비밀번호
저장된 솔트16바이트
a1b2c3d4e5f60718293a4b5c6d7e8f90
저장된 반복 횟수
600,000
PBKDF2
HMAC-SHA256
다시 계산한 키32바이트

계산 중…

상수 · 표준이 정해 두어 누구나 같은 값

PBKDF2-HMAC-SHA256RFC 8018 · OWASP

기호이름정의 · 출처값
PRF의사 난수 함수HMAC-SHA256HMAC-SHA256
hLenPRF 출력 길이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