해시/암호화

PBKDF2 Hash + Verify

비밀번호로부터 PBKDF2(RFC 8018), HMAC-SHA1/256/384/512로 키를 유도하며, 반복 횟수를 조정할 수 있습니다.


                    

PBKDF2 (RFC 8018) applies HMAC to a password and salt repeatedly to deliberately slow down computation — it's the oldest of the standardized algorithms for password hashing and encryption key derivation.

How to use it

Common uses

Things to keep in mind

Unlike bcrypt and Argon2, PBKDF2 isn't memory-hard — it only requires CPU time, so it's less resistant to attacks on GPUs with many parallel compute units.

The recommended iteration count rises over time in NIST and OWASP guidance as hardware gets faster — check against current recommendations periodically.

이 도구에 대한 아티클: PBKDF2: 가장 오래된 키 스트레칭 표준

자주 묻는 질문

비밀번호 해싱에서 PBKDF2는 bcrypt나 Argon2와 어떻게 다른가요?

PBKDF2는 브루트포스를 늦추기 위해 HMAC 해시 함수를 반복적으로 적용하지만, bcrypt나 Argon2와 달리 메모리 집약적이지 않아 GPU로 크랙하는 비용이 상대적으로 저렴합니다. 여전히 널리 사용되고 FIPS 승인을 받았지만, 새 시스템에는 일반적으로 Argon2가 선호됩니다.

반복 횟수는 무엇을 제어하며 얼마나 높아야 하나요?

반복 횟수는 기본 해시가 몇 번 적용되는지를 정하며, 속도와 브루트포스 저항성을 직접적으로 맞바꿉니다. 현재 지침은 SHA-256에 대해 수십만 회의 반복을 권장하며, 하드웨어가 빨라짐에 따라 시간이 지나면서 늘려야 합니다.

PBKDF2에 솔트가 필요한 이유는 무엇인가요?

솔트는 동일한 비밀번호가 서로 다른 출력을 생성하도록 보장하여, 공격자가 미리 계산된 레인보우 테이블을 사용하지 못하게 하고 각 해시를 개별적으로 공격하도록 강제합니다.

PBKDF2가 사용하는 기본 해시 함수가 중요한가요?

네. 예전 구현은 기본값으로 HMAC-SHA1을 사용하는 경우가 많았습니다 — HMAC 구조 안에서는 치명적인 취약점이 아니지만, 현대의 권장 사항은 체감할 만한 속도 저하 없이 더 큰 안전 여유를 위해 HMAC-SHA256 이상을 명확히 권장합니다.

PBKDF2는 비밀번호 저장 외에 어디에 사용되나요?

PBKDF2는 비밀번호로부터 암호화 키를 유도하는 데도 널리 사용됩니다 — 예를 들어 Wi-Fi의 WPA2/WPA3나 많은 암호화된 파일 컨테이너 형식에서 사용됩니다.

아티클: 해시/암호화

Hash Generator: MD5, SHA-1, SHA-256은 서로 어떻게 다른가

MD5가 아직도 파일 무결성 검증에는 쓰이지만 비밀번호에는 쓰이지 않는 이유.

Checksum Verifier: 파일이 손상되지 않았는지 확인하는 방법

일치하는 체크섬이 파일의 무결성은 확인해주지만 누가 만들었는지는 확인해주지 않는 이유.

HMAC: 키가 있는 해시는 일반 해시와 어떻게 다른가

일반 SHA-256이 메시지 위변조를 막지 못하지만 HMAC은 막을 수 있는 이유.

Bcrypt: 비밀번호를 빠르게가 아니라 느리게 해시하는 이유

빠른 SHA-256이 비밀번호에는 나쁜 선택이고, 느린 bcrypt가 올바른 선택인 이유.

UUID: 거의 절대 중복되지 않는 식별자는 어떻게 만들어지는가

UUID v4를 수백만 대의 기계에서 충돌 위험 없이 독립적으로 생성할 수 있는 이유.

비밀번호 생성기: 비밀번호를 진짜로 강하게 만드는 것

사전 단어로 만든 긴 비밀번호가 기호와 숫자가 든 짧은 비밀번호보다 강한 이유.

AES: 대칭 암호화는 어떻게 동작하는가

AES에서 같은 키가 데이터를 암호화하고 복호화하는 이유, 그리고 이것이 비대칭 암호화와 다른 점.

Argon2: 이 알고리즘이 비밀번호 해싱 경진대회에서 우승한 이유

Argon2가 오래된 비밀번호 해싱 알고리즘보다 GPU를 이용한 공격을 더 잘 방어하는 방법.

Scrypt: 이 알고리즘이 왜 그렇게 많은 메모리를 필요로 하는가

scrypt가 ASIC 장치에서의 크래킹을 어렵게 만들기 위해 일부러 많은 메모리를 요구하는 이유.

TOTP: 인증 앱의 일회용 코드는 어떻게 작동하는가

Google Authenticator의 코드가 인터넷 없이 작동하고 시간만으로 서버와 동기화되는 이유.

X.509: SSL 인증서 안에는 무엇이 들어있는가

초록색 자물쇠를 보여주기 전에 브라우저가 사이트 인증서에서 정확히 무엇을 확인하는지.

PGP: 공개 키와 개인 키 암호화는 어떻게 작동하는가

PGP 공개 키는 자유롭게 공유할 수 있지만 개인 키는 절대 공유해서는 안 되는 이유.