bcrypt 해시 생성기·검증기
개발자 도구bcrypt 해시 생성기는 비밀번호를 bcrypt 알고리즘(랜덤 salt + 조절 가능한 cost)으로 해시하고, 비밀번호와 해시의 일치 여부를 검증하는 개발자 도구입니다.
개념 설명
bcrypt는 Blowfish 암호를 기반으로 1999년 설계된 비밀번호 해시 함수로, 의도적으로 느리게 만들어 무차별 대입 공격 비용을 높입니다. cost 값이 1 커질 때마다 계산량이 2배가 되고, 해시마다 랜덤 salt가 포함되어 같은 비밀번호도 매번 다른 해시가 나옵니다. 이 도구는 bcryptjs 라이브러리를 브라우저 안에서 실행하므로 비밀번호가 기기를 떠나지 않습니다. 개발 중 테스트 계정 해시 생성이나 DB에 저장된 해시 검증에 사용하세요.
사용법
- 1생성 모드에서 비밀번호와 cost(라운드)를 선택해 해시를 만듭니다.
- 2검증 모드에서는 비밀번호와 기존 bcrypt 해시를 입력합니다.
- 3결과 해시를 복사하거나 일치 여부를 확인합니다.
참조표
| 구간 | 의미 |
|---|---|
| $2b$ | 알고리즘 식별자(bcrypt 최신 규격) |
| 10$ | cost — 반복 횟수 2^10 = 1,024회 |
| 다음 22자 | base64로 부호화된 128비트 랜덤 salt |
| 마지막 31자 | 184비트 해시 결과(checksum) |
출처/기준
- A Future-Adaptable Password Scheme (bcrypt) - USENIX
- OWASP Password Storage Cheat Sheet - OWASP
- MDN Web Docs: Client-side web APIs - MDN Web Docs
자주 묻는 질문
입력한 비밀번호가 서버로 전송되나요?
아니요. bcryptjs 라이브러리가 브라우저 안에서 실행되어 해시 생성·검증 모두 로컬로 처리됩니다. 비밀번호와 해시는 전송·저장되지 않습니다. 다만 공용 PC나 화면 공유 중에는 실제 운영 비밀번호 입력을 피하세요.
같은 비밀번호인데 해시가 매번 다른 이유는 무엇인가요?
해시마다 새 랜덤 salt가 생성되어 포함되기 때문입니다. 검증할 때는 해시 문자열 안에 저장된 salt를 재사용하므로 어떤 해시든 올바르게 비교됩니다.
cost(라운드)는 몇으로 해야 하나요?
일반적으로 10~12가 권장됩니다. 값이 1 커질수록 시간이 2배로 늘어나므로, 서버 하드웨어에서 해시 1회가 약 100~300ms 걸리는 수준으로 맞추는 것이 좋습니다.
비밀번호 길이 제한이 있나요?
bcrypt는 입력을 72바이트까지만 사용하고 초과분은 무시합니다. UTF-8 기준 72바이트를 넘는 비밀번호는 이 도구가 경고를 표시합니다.