Bcrypt 해시 생성기이란?

bcrypt 알고리즘으로 안전한 솔트 처리된 패스워드 해시를 생성합니다. 데이터베이스 저장용 패스워드 해시 또는 기존 해시와 평문 대조 검증에 사용할 수 있습니다.

bcrypt는 수많은 운영 환경 인증 시스템 뒤에서 돌아가는 비밀번호 해싱 알고리즘입니다. 해시마다 고유한 무작위 솔트가 박혀 있어 같은 비밀번호도 같은 해시를 만들지 않습니다. 코스트 팩터 4에서 18까지는 한 단계 올릴 때마다 계산량이 두 배로 늘어, 무차별 대입을 거의 멈춰 세우면서 로그인 응답 시간은 무난하게 유지합니다.

사용 방법

  1. 해시할 패스워드나 문자열을 입력하고, 비용 인수(솔트 라운드)를 4에서 18 사이로 선택하세요.
  2. 생성 버튼을 클릭하여 Bcrypt 해시를 만드세요. 비용 인수가 높을수록 더 강한 해시가 생성되지만 계산 시간이 길어집니다.
  3. 생성된 해시를 애플리케이션에 복사하거나, 검증 탭에서 패스워드와 기존 해시를 비교 확인하세요.

사용 시기

  • 신규 사용자 비밀번호를 DB에 저장하기 전에 해시 처리할 때.
  • 이미 저장된 $2b$ 해시에 맞춰 로그인 흐름을 재현하거나 테스트할 때.
  • 실제 서버에서 해시 시간을 재 보고 코스트 팩터를 결정할 때.

결과

백엔드 개발자가 사용자 패스워드를 안전하게 저장해야 했습니다. MySecurePass123을 12 솔트 라운드로 입력하여 얻은 $2b$ 해시 문자열을 PostgreSQL 데이터베이스에 저장했습니다.

자주 묻는 질문

운영 환경에서 코스트 팩터는 얼마가 적당한가요?
요즘 서버 하드웨어 기준 12가 흔한 하한선이고 14가 점점 표준이 되고 있습니다. 로그인 한 번당 200~500밀리초 정도 걸리도록 잡으세요. 100밀리초 미만이면 너무 약하고, 1초를 넘으면 저사양 기기를 쓰는 사용자가 불편해합니다.
같은 비밀번호인데 매번 해시가 다른 이유는?
bcrypt는 호출할 때마다 16바이트 솔트를 새로 만들어 해시 문자열 안에 그대로 박아 넣습니다. 바로 이게 핵심이라 'letmein'을 비밀번호로 쓰는 두 사용자도 DB에는 전혀 다른 해시로 남고, 유출되어도 레인보우 테이블 하나로 뚫리지 않습니다.
비밀번호 길이에 따로 제한이 있나요?
bcrypt는 72바이트를 넘는 입력을 조용히 잘라냅니다. 더 긴 패스프레이즈를 받으려면 SHA-256으로 먼저 다이제스트를 만든 뒤 bcrypt에 넘기세요. 대부분의 앱은 입력을 64~72자로 제한합니다.
다른 bcrypt 라이브러리가 만든 해시도 검증할 수 있나요?
가능합니다. $2a$, $2b$, $2y$ 접두사는 PHP, Node, Python, Ruby, Go, Java 구현체 사이에서 모두 호환됩니다. 어디서 만든 해시든 검증 탭에 붙여 넣으면 원래 비밀번호와 매칭됩니다.
2026년에도 bcrypt를 써도 될까요, argon2로 갈아타야 할까요?
지금은 argon2id가 권장되지만 bcrypt도 여전히 안전하고 어디서나 지원됩니다. 이미 bcrypt를 쓰는 시스템이라면 급하게 이전할 이유는 없습니다. 새 프로젝트라면 처음부터 argon2를 고르는 편이 깔끔합니다.

관련 도구