bcrypt 해시 생성기·검증기

개발자 도구

bcrypt 해시 생성기는 비밀번호를 bcrypt 알고리즘(랜덤 salt + 조절 가능한 cost)으로 해시하고, 비밀번호와 해시의 일치 여부를 검증하는 개발자 도구입니다.

개념 설명

bcrypt는 Blowfish 암호를 기반으로 1999년 설계된 비밀번호 해시 함수로, 의도적으로 느리게 만들어 무차별 대입 공격 비용을 높입니다. cost 값이 1 커질 때마다 계산량이 2배가 되고, 해시마다 랜덤 salt가 포함되어 같은 비밀번호도 매번 다른 해시가 나옵니다. 이 도구는 bcryptjs 라이브러리를 브라우저 안에서 실행하므로 비밀번호가 기기를 떠나지 않습니다. 개발 중 테스트 계정 해시 생성이나 DB에 저장된 해시 검증에 사용하세요.

bcrypt = EksBlowfish(cost, salt, password) — 형식 $2b$[cost]$[22자 salt][31자 해시], 반복 횟수 = 2^cost

사용법

  1. 1생성 모드에서 비밀번호와 cost(라운드)를 선택해 해시를 만듭니다.
  2. 2검증 모드에서는 비밀번호와 기존 bcrypt 해시를 입력합니다.
  3. 3결과 해시를 복사하거나 일치 여부를 확인합니다.

참조표

bcrypt 해시 생성기·검증기 참조표
구간의미
$2b$알고리즘 식별자(bcrypt 최신 규격)
10$cost — 반복 횟수 2^10 = 1,024회
다음 22자base64로 부호화된 128비트 랜덤 salt
마지막 31자184비트 해시 결과(checksum)

출처/기준

자주 묻는 질문

입력한 비밀번호가 서버로 전송되나요?

아니요. bcryptjs 라이브러리가 브라우저 안에서 실행되어 해시 생성·검증 모두 로컬로 처리됩니다. 비밀번호와 해시는 전송·저장되지 않습니다. 다만 공용 PC나 화면 공유 중에는 실제 운영 비밀번호 입력을 피하세요.

같은 비밀번호인데 해시가 매번 다른 이유는 무엇인가요?

해시마다 새 랜덤 salt가 생성되어 포함되기 때문입니다. 검증할 때는 해시 문자열 안에 저장된 salt를 재사용하므로 어떤 해시든 올바르게 비교됩니다.

cost(라운드)는 몇으로 해야 하나요?

일반적으로 10~12가 권장됩니다. 값이 1 커질수록 시간이 2배로 늘어나므로, 서버 하드웨어에서 해시 1회가 약 100~300ms 걸리는 수준으로 맞추는 것이 좋습니다.

비밀번호 길이 제한이 있나요?

bcrypt는 입력을 72바이트까지만 사용하고 초과분은 무시합니다. UTF-8 기준 72바이트를 넘는 비밀번호는 이 도구가 경고를 표시합니다.

관련 도구