Developer Security Utility

bcrypt Hash 생성기

비밀번호 또는 텍스트를 bcrypt 해시로 변환하고, 원본 텍스트와 해시값이 일치하는지 브라우저에서 빠르게 검증할 수 있는 개발자용 보안 테스트 도구입니다.

Salt 포함 해시 생성 같은 입력값도 매번 다른 bcrypt 해시로 생성됩니다.
Cost Factor 조절 OWASP의 bcrypt 최소 권고인 Cost 10부터 계산 시간을 비교할 수 있습니다.
Hash 검증 지원 원본 텍스트와 bcrypt 해시의 일치 여부를 바로 확인할 수 있습니다.
!

테스트용 보안 도구 안내

이 페이지는 개발 테스트와 학습용 bcrypt 도구입니다. 실제 서비스의 회원 비밀번호는 브라우저에 노출하지 말고 서버의 인증 로직에서 안전하게 처리하세요.

bcrypt Hash 생성

해시로 변환할 비밀번호 또는 텍스트를 입력하고 Cost Factor를 선택하세요.

bcrypt는 단방향 해시 방식이므로 생성된 해시에서 원본 텍스트를 복호화할 수 없습니다.

빠름 10 rounds 강함

Cost 10부터 선택할 수 있습니다. 값이 높을수록 계산 시간과 무차별 대입 공격 비용이 함께 증가합니다.

bcrypt는 salt가 포함되기 때문에 같은 텍스트라도 서로 다른 해시가 생성됩니다.

원본 길이 0자
Cost Factor 10
생성 개수 1개
생성 시간 -

생성 결과

생성된 bcrypt 해시값을 복사하거나 TXT 파일로 저장할 수 있습니다.

대기 중
원본 텍스트를 입력한 뒤 bcrypt Hash 생성하기 버튼을 눌러주세요.

bcrypt Hash 검증

원본 텍스트와 bcrypt 해시값이 일치하는지 확인합니다.

일반적인 bcrypt 해시는 $2a$, $2b$, $2y$ 접두사를 포함하며 전체 길이는 보통 60자입니다.

검증할 원본 텍스트와 bcrypt 해시값을 입력하세요.
사용 가이드

bcrypt 해시를 만들고 72바이트 한도까지 검증하는 법

테스트 문자열을 브라우저에서 bcrypt 해시로 만들고 기존 해시와 일치하는지 확인하는 개발용 도구입니다. bcrypt는 레거시 시스템 호환에 사용할 수 있지만 새 시스템은 Argon2id 같은 현대적 선택을 먼저 검토하고, 실제 사용자 비밀번호는 브라우저 도구에 입력하지 않아야 합니다.

이런 분께 유용합니다

  • bcrypt 해시 형식과 salt 동작을 학습하는 개발자
  • 테스트 계정용 문자열과 해시의 일치 여부를 로컬에서 확인하는 사용자
  • Cost 10~14의 계산 시간 차이를 브라우저에서 비교하려는 사용자

대표 활용 상황

  • 같은 입력이 서로 다른 salt로 매번 다른 해시가 되는지 확인할 때
  • 테스트 문자열이 기존 $2a$·$2b$·$2y$ 해시와 일치하는지 검사할 때
  • 인증 서버에 적용하기 전 Cost 후보의 상대 계산 시간을 살펴볼 때

처음부터 결과 확인까지

  1. 1

    실제 사용자 비밀번호가 아닌 테스트 전용 문자열을 준비합니다.

  2. 2

    공백을 포함한 입력이 의도한 값인지 확인하고 UTF-8 72바이트 이하로 입력합니다.

  3. 3

    OWASP 최소 권고인 Cost 10에서 시작해 필요한 생성 개수를 선택합니다.

  4. 4

    생성 시간과 서로 다른 60자 해시 결과를 확인합니다.

  5. 5

    검증 영역에 원문과 해시를 넣어 일치 여부를 확인합니다.

  6. 6

    실제 서비스에서는 서버 라이브러리로 성능·Unicode 호환성을 시험하고 비밀번호 정책과 재해시 전략을 설계합니다.

사용 예시 1

같은 문자열로 해시 3개 생성

입력
테스트 문자열 / Cost 10 / 3개
결과
salt가 달라 서로 다른 세 개의 60자 bcrypt 해시

해시가 달라도 각각 compare 함수로 같은 원문과 일치할 수 있습니다. salt는 해시 문자열에 포함됩니다.

사용 예시 2

이모지의 UTF-8 바이트 한도

입력
😀 18개 또는 19개
결과
18개는 72바이트로 허용, 19개는 76바이트로 거부

화면의 문자열 길이와 UTF-8 바이트 수는 다릅니다. 입력을 임의로 잘라서 해시하지 않고, 생성과 비교 모두 72바이트 초과를 거부합니다.

계산·처리 기준

번들된 bcrypt.js가 Web Crypto 또는 브라우저 난수원을 이용해 salt를 만들고 선택 Cost의 2의 지수적 작업량으로 해시합니다. 입력은 trim하지 않아 앞뒤 공백도 비밀번호의 일부로 보존하며 TextEncoder로 UTF-8 바이트 수를 계산해 72바이트 초과를 차단합니다. 검증은 해시 안의 알고리즘·Cost·salt를 읽어 원문 후보를 다시 계산합니다.

알아둘 한계

  • OWASP는 새 시스템에 Argon2id를 우선 권고하며 bcrypt는 주로 레거시 호환 선택입니다.
  • 브라우저 측 소요 시간은 실제 인증 서버의 CPU, 런타임과 동시 부하를 대표하지 않습니다.
  • Cost를 높이면 공격 비용뿐 아니라 정상 로그인 지연과 서비스 거부 위험도 함께 증가할 수 있습니다.
  • 클립보드·다운로드 파일·화면 공유에 해시와 입력 정보가 남을 수 있으므로 실제 자격 증명을 사용하면 안 됩니다.
개인정보 처리

입력과 해시 계산은 번들된 JavaScript로 현재 브라우저에서 처리하며 win-j 서버로 전송하거나 저장하지 않습니다. 그래도 실제 비밀번호는 브라우저 확장, 화면 기록, 클립보드와 로컬 악성 코드에 노출될 수 있으므로 테스트 값만 입력하세요.

자주 묻는 질문

왜 72자가 아니라 72바이트인가요?

bcrypt의 입력 한도는 바이트 기준입니다. 한글과 이모지는 UTF-8에서 여러 바이트를 사용하므로 72자보다 훨씬 짧아도 한도에 도달할 수 있습니다.

Cost 14가 항상 가장 좋은가요?

아닙니다. 정상 로그인 성능과 서비스 거부 위험을 함께 측정해야 합니다. OWASP는 bcrypt를 쓸 경우 최소 10을 제시하지만 최종 값은 실제 서버에서 조정해야 합니다.

bcrypt 해시를 복호화할 수 있나요?

복호화하지 않습니다. 입력 후보를 같은 Cost와 salt로 계산해 저장된 해시와 일치하는지만 확인합니다.