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 Hash 생성기 도움말

bcrypt Hash 생성기는 언제 사용하나요?

로그인, 회원가입, 인증 시스템을 개발할 때 비밀번호 해시 방식의 동작을 테스트하거나 bcrypt 해시와 원본 텍스트의 일치 여부를 확인할 때 사용할 수 있습니다.

bcrypt는 무엇인가요?

bcrypt는 비밀번호 저장에 자주 사용되는 단방향 해시 알고리즘입니다. salt가 포함되어 같은 비밀번호를 입력해도 매번 다른 해시값이 생성됩니다.

사용 방법

  1. 원본 텍스트에 테스트용 비밀번호나 문자열을 입력합니다.
  2. Cost Factor와 생성 개수를 선택한 뒤 bcrypt Hash 생성하기를 누릅니다.
  3. 생성된 해시를 복사하거나 TXT 파일로 저장합니다.
  4. 검증 영역에 원본 텍스트와 bcrypt 해시를 입력해 일치 여부를 확인합니다.

Cost Factor는 어떻게 선택하나요?

  • 이 도구는 bcrypt를 써야 하는 환경을 위해 OWASP 최소 권고인 Cost 10부터 제공합니다.
  • 값이 높을수록 생성과 검증 시간이 길어지지만 공격 비용이 증가합니다.
  • 새 시스템에서는 Argon2id 같은 메모리 경직형 알고리즘을 우선 검토하고, bcrypt를 쓴다면 실제 인증 서버에서 1초 이내 검증을 목표로 성능을 측정하세요.

bcrypt와 SHA-256의 차이는 무엇인가요?

SHA-256은 빠른 해시 계산에 적합하지만 비밀번호 저장용으로는 별도의 salt와 반복 연산 설계가 필요합니다. bcrypt는 비밀번호 저장을 목적으로 설계되어 salt와 Cost Factor를 통해 공격 비용을 높일 수 있습니다.

주의사항

  • 실제 사용자의 비밀번호를 이 페이지에 입력하지 말고, bcrypt의 72바이트 입력 한도를 확인하세요.
  • 운영 서비스에서는 반드시 서버에서 비밀번호를 해시 처리하세요.
  • bcrypt 해시는 복호화하는 값이 아니라 검증하는 값입니다.
  • 생성된 해시와 원본 비밀번호를 함께 저장하지 마세요.
같은 비밀번호인데 해시값이 매번 다른 이유는?

bcrypt는 내부적으로 salt를 사용합니다. salt는 해시마다 다르게 적용되므로 같은 원본 텍스트라도 매번 다른 해시값이 생성됩니다.

bcrypt 해시를 다시 비밀번호로 복호화할 수 있나요?

불가능합니다. bcrypt는 단방향 해시 방식이므로 원본을 복호화하지 않고, 입력값을 다시 해시 검증하여 일치 여부만 확인합니다.

검증은 어떻게 이루어지나요?

입력한 원본 텍스트와 저장된 bcrypt 해시를 비교하여 같은 원본에서 만들어진 해시인지 확인합니다. salt 정보는 bcrypt 해시 문자열 안에 포함되어 있습니다.

EDITORIAL GUIDE

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에서 72바이트를 넘는 다국어 문자열
결과
입력 길이 초과 오류로 생성 중단

문자 수와 바이트 수는 다릅니다. 초과 부분이 구현체에서 조용히 무시되는 충돌을 막기 위해 이 도구는 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로 계산해 저장된 해시와 일치하는지만 확인합니다.