본문으로 건너뛰기
🛠️ToolsShed

PBKDF2 해시 생성기

브라우저에서 PBKDF2-SHA256 패스워드 해시를 생성하고 검증합니다.

Web Crypto API로 PBKDF2-SHA256 사용. 형식: hex_salt:hex_hash

이 도구 소개

PBKDF2(비밀번호 기반 키 유도 함수 2)는 비밀번호를 무작위 솔트와 함께 수천 번 또는 수백만 번 반복해서 해싱함으로써 브루트포스 공격을 매우 느리고 비용이 많이 들도록 설계된 암호화 알고리즘입니다. 빠르고 GPU 가속 공격에 취약한 단순 해시 함수와 달리, PBKDF2는 비밀번호 보안을 위해 특별히 설계되었으며, 하드웨어가 빨라지면서 반복 횟수를 시간에 따라 조정할 수 있어 미래의 위협에 저항력을 유지합니다. 이 브라우저 기반 도구를 사용하면 비밀번호를 서버로 전송하지 않고 PBKDF2-SHA256 해시를 완전히 오프라인에서 생성하고 검증할 수 있습니다.

해시를 생성하려면 비밀번호를 입력하고, 반복 횟수를 조정하고(값이 높을수록 느리지만 더 안전합니다; 100,000은 최신 시스템의 견고한 기본값), 솔트 길이를 선택하고(16바이트가 표준), '해시 생성'을 클릭하기만 하면 됩니다. 도구는 hex_salt:hex_hash 형식의 해시를 생성하며, 이를 복사하여 안전하게 보관할 수 있습니다. 저장된 해시에 대해 비밀번호를 검증하려면 '검증' 탭으로 전환하고, 해시 문자열을 붙여넣고, 후보 비밀번호를 입력한 후 '검증'을 클릭하세요—도구가 일치하는지 알려줄 것입니다. 이는 애플리케이션에서 비밀번호 검증을 구현하는 개발자, 비밀번호 강도를 테스트하는 보안 전문가 또는 비밀번호 해싱 작동 방식을 이해해야 하는 사람에게 이상적입니다.

해시의 강도는 반복 횟수에 따라 달라집니다. NIST는 2024년 기준으로 최소 210,000회의 반복을 권장하지만, 오래된 시스템에서는 10,000회 또는 50,000회를 사용할 수 있습니다. PBKDF2는 비밀번호 자체만큼만 강하다는 점을 기억하세요—대문자, 소문자, 숫자, 기호가 섞인 최소 12자의 비밀번호를 사용하세요. 또한 PBKDF2는 새로운 시스템에서는 Argon2와 같은 최신 알고리즘으로 대체되었지만, 기존 인프라에서 여전히 광범위하게 사용되고 지원됩니다. 프로덕션 환경에서 장기적인 비밀번호 저장을 위해 OWASP 가이드라인을 참고하고 하드웨어 발전에 따라 반복 횟수를 조정하는 것을 고려하세요.

자주 묻는 질문

코드 구현

import bcrypt

# Hash a password (cost factor 12)
password = "my_secure_password"
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt(rounds=12))
print("Hash:", hashed.decode())
# $2b$12$...

# Verify a password
is_valid = bcrypt.checkpw(password.encode(), hashed)
print("Valid:", is_valid)  # True

is_invalid = bcrypt.checkpw(b"wrong_password", hashed)
print("Invalid:", is_invalid)  # False

# The salt is embedded in the hash — no need to store it separately
# Always use checkpw() for comparison (constant-time)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.