ZeroTool Workbench
Bcrypt 생성기
브라우저에서 bcrypt 비밀번호 해시를 생성하고 검증하세요. 비용 계수 조정 가능(4–14), Web Worker 기반으로 UI 반응성 유지. 비밀번호는 기기를 벗어나지 않습니다.
사용 방법
생성 모드
- 비밀번호 필드에 평문 비밀번호를 입력합니다.
- 비용 계수 슬라이더를 조정합니다(기본값: 12). 예상 처리 시간이 실시간으로 업데이트됩니다.
- 해시 생성을 클릭합니다. Web Worker가 계산하는 동안 UI는 응답성을 유지합니다.
- 복사를 클릭하여 해시를 클립보드에 복사합니다.
검증 모드
- 검증 탭으로 전환합니다.
- 평문 비밀번호와 저장된 bcrypt 해시를 입력합니다.
- 검증을 클릭합니다. 결과에 일치 또는 불일치가 표시됩니다.
비용 계수 참고표
| 비용 | 예상 시간 | 용도 |
|---|---|---|
| 10 | ~60 ms | 고트래픽 API, 레거시 시스템 |
| 12 | ~250 ms | 웹 앱 권장 기본값 |
| 13 | ~500 ms | 높은 보안성, 중간 트래픽 |
| 14 | ~1 s | 고보안 컨텍스트 |
보안 참고사항
- 비밀번호에 MD5, SHA-1, 또는 솔트 없는 SHA-256을 절대 사용하지 마세요. 너무 빠르고 레인보우 테이블 공격에 취약합니다.
- bcrypt 해시에는 비용 계수가 포함되어 있어 새 등록의 비용을 올려도 저장된 해시는 계속 검증할 수 있습니다.
- 이 도구는 bcryptjs 라이브러리를 사용합니다. 모든 bcrypt 구현과 호환되는 순수 JavaScript 포트입니다.
FAQ
bcrypt란 무엇이며 언제 사용해야 하나요?
bcrypt는 의도적으로 느리고 계산 비용이 높게 설계된 비밀번호 해싱 함수로, 무차별 대입 공격을 비현실적으로 만듭니다. 데이터베이스에 사용자 비밀번호를 저장할 때 사용하세요. MD5나 SHA 같은 빠른 해시는 절대 사용하지 마세요.
비용 계수(Cost Factor)는 무엇을 제어하나요?
비용 계수는 키 파생 함수의 반복 횟수를 결정합니다. 1 증가할 때마다 계산 시간이 2배가 됩니다. 비용 12(~250ms)가 대부분의 웹 앱에 권장되는 기본값입니다.
높은 비용 계수에서 해시 생성에 몇 초가 걸리는 이유는?
의도적인 설계입니다. bcrypt는 느리도록 설계되었습니다. 당신에게 비용이 드는 계산은 공격자에게도 똑같이 비용이 듭니다. Web Worker가 백그라운드에서 계산하므로 브라우저 UI는 응답성을 유지합니다.
비밀번호가 서버로 전송되나요?
아니요. 모든 해싱 및 검증은 bcryptjs 라이브러리를 사용해 브라우저에서 완결됩니다. 네트워크 통신은 전혀 이루어지지 않습니다.
같은 비밀번호를 생성할 때마다 다른 해시가 나오는 이유는?
bcrypt는 해시에 무작위 솔트를 삽입합니다. 생성할 때마다 고유한 솔트가 생성되므로 두 해시는 달라 보이지만 둘 다 원래 비밀번호로 올바르게 검증됩니다.
유효한 bcrypt 해시 형식은 무엇인가요?
bcrypt 해시는 $2b$(또는 이전 버전의 $2a$/$2x$/$2y$)로 시작하고, 비용 계수와 솔트+해시 53자가 이어집니다. 예: $2b$12$...