PBKDF2·HKDF 키 파생

PBKDF2 또는 HKDF로 비밀번호나 시크릿에서 키를 파생하고, 솔트·반복 횟수 또는 info 라벨·해시·출력 길이를 골라 hex나 base64로 브라우저에서 읽을 수 있습니다.

도구를 불러오는 중…

PBKDF2·HKDF 키 파생PBKDF2로 비밀번호를 늘여 키로 만들거나, HKDF로 높은 엔트로피의 시크릿을 이름이 붙은 하위 키로 펼치는 일을 모두 기기를 떠나지 않고 처리합니다. 해시를 고르고, 솔트와 반복 횟수(PBKDF2) 또는 info 라벨(HKDF)을 설정한 뒤 필요한 출력 비트 수를 정하고, 파생된 키를 hex나 base64로 복사하세요. 모든 바이트는 네이티브 Web Crypto API(crypto.subtle.deriveBits)로 로컬에서 계산되므로 비밀번호와 시크릿은 서버에 닿지 않습니다.

PBKDF2·HKDF 키 파생란?

PBKDF2·HKDF 키 파생은 개발자가 가장 자주 쓰는 두 가지 키 파생 함수를 실행하는 무료 브라우저 도구입니다. PBKDF2(비밀번호 기반 키 파생 함수 2)는 HMAC을 수천 번 반복해 무차별 대입을 일부러 느리게 만들며, 사람이 쓰는 비밀번호와 솔트를 고정 길이 키로 바꿉니다. HKDF(HMAC 기반 키 파생 함수)는 이미 충분한 엔트로피를 가진 시크릿을 받아 info 라벨로 문맥에 묶인 하나 이상의 하위 키로 펼치는데, 하나의 마스터 시크릿에서 암호화용 키와 인증용 키를 따로 파생하기에 알맞습니다. 백엔드 엔지니어, 보안 검토자, 로그인이나 암호화 코드를 작성하는 누구나 테스트 벡터를 확인하거나 서버의 파생 과정을 재현하거나 일회성 작업용 키를 만드는 데 사용합니다. 상단의 PBKDF2/HKDF 토글로 알고리즘을 바꾸고, SHA-256·SHA-384·SHA-512·SHA-1 중에서 고르며, 출력 길이를 비트 단위로 정하고, 결과를 hex나 base64로 읽으세요.

PBKDF2·HKDF 키 파생 사용법

  1. 상단 토글에서 코드나 테스트 벡터가 쓰는 함수에 맞춰 PBKDF2 또는 HKDF를 고르세요.
  2. 「비밀번호/시크릿」 필드에 비밀번호(PBKDF2)나 높은 엔트로피의 시크릿(HKDF)을 입력하거나 붙여 넣은 뒤 솔트를 입력하세요.
  3. PBKDF2는 반복 횟수를, HKDF는 키를 문맥에 묶는 선택적 info 라벨을 설정하세요.
  4. 해시(SHA-256·SHA-384·SHA-512·SHA-1)와 출력 길이(비트)를 고르세요.
  5. hex / base64 토글을 필요한 인코딩으로 바꾸고 복사 버튼으로 파생된 키를 복사하세요.

예시

PBKDF2 — 비밀번호에서 256비트 키

입력

시크릿: correct horse battery staple
솔트: a1b2c3d4
해시: SHA-256, 반복: 100000, 비트: 256

출력

같은 비밀번호·솔트·해시·반복 횟수에서 재현되는 64자리 hex 문자열(32바이트)

HKDF — 마스터 시크릿에서 문맥에 묶인 하위 키

입력

시크릿: 9f8e7d6c…(마스터 키)
솔트: session-2024
Info: aes-gcm-encryption
해시: SHA-256, 비트: 256

출력

같은 시크릿이라도 Info: hmac-authentication일 때와는 다른 256비트 키가 되어, 하나의 마스터에서 독립적인 하위 키가 나온다

더 짧은 출력을 base64로

입력

비트: 128, 인코딩을 base64로 전환

출력

파생된 처음 16바이트를 인코딩한 24자리 base64 문자열

자주 묻는 질문

제 비밀번호나 시크릿이 어딘가로 전송되나요?
아니요. 「비밀번호/시크릿」·솔트·info는 브라우저 안에 머뭅니다. 키는 Web Crypto API(crypto.subtle.deriveBits)로 로컬에서 파생되며, 어떤 것도 서버로 업로드되거나 저장되지 않으므로 도구는 오프라인에서 작동하고 입력은 페이지를 떠나지 않습니다.
PBKDF2와 HKDF는 언제 써야 하나요?
엔트로피가 낮은 사람의 비밀번호에서 키를 파생할 때는 PBKDF2를 쓰세요. 반복 횟수가 무차별 대입을 늦춥니다. 이미 높은 엔트로피의 시크릿(마스터 키나 공유 시크릿)이 있고 info 라벨로 하나 이상의 별도 하위 키로 펼치고 싶을 때는 HKDF를 쓰세요. HKDF는 빠르며 PBKDF2의 비밀번호 늘이기를 대체하지 않습니다.
왜 출력 길이가 반올림되나요?
Web Crypto의 deriveBits는 온전한 바이트 단위로 동작하므로, 비트 단위 출력 길이는 가장 가까운 8의 배수로 반올림됩니다. 결과 아래 통계에 실제로 생성된 비트 수와 바이트 수가 표시됩니다.
어떤 해시와 알고리즘을 지원하나요?
두 알고리즘 모두 SHA-256·SHA-384·SHA-512·SHA-1에서 동작하며, 이는 브라우저 Web Crypto가 PBKDF2와 HKDF에 노출하는 해시입니다. scrypt·Argon2·bcrypt는 브라우저가 네이티브로 구현하지 않으므로 제공하지 않습니다.
같은 입력이면 항상 같은 키가 나오나요?
네. 키 파생은 결정적입니다. 같은 알고리즘·시크릿·솔트·해시·출력 길이·반복 횟수(PBKDF2) 또는 info(HKDF)면 언제나 같은 바이트가 나오므로, 서버가 파생한 키를 재현하거나 검증하는 데 쓸 수 있습니다.

관련 도구