이런 분께 유용합니다
- bcrypt 해시 형식과 salt 동작을 학습하는 개발자
- 테스트 계정용 문자열과 해시의 일치 여부를 로컬에서 확인하는 사용자
- Cost 10~14의 계산 시간 차이를 브라우저에서 비교하려는 사용자
Developer Security Utility
비밀번호 또는 텍스트를 bcrypt 해시로 변환하고, 원본 텍스트와 해시값이 일치하는지 브라우저에서 빠르게 검증할 수 있는 개발자용 보안 테스트 도구입니다.
이 페이지는 개발 테스트와 학습용 bcrypt 도구입니다. 실제 서비스의 회원 비밀번호는 브라우저에 노출하지 말고 서버의 인증 로직에서 안전하게 처리하세요.
해시로 변환할 비밀번호 또는 텍스트를 입력하고 Cost Factor를 선택하세요.
bcrypt는 단방향 해시 방식이므로 생성된 해시에서 원본 텍스트를 복호화할 수 없습니다.
Cost 10부터 선택할 수 있습니다. 값이 높을수록 계산 시간과 무차별 대입 공격 비용이 함께 증가합니다.
bcrypt는 salt가 포함되기 때문에 같은 텍스트라도 서로 다른 해시가 생성됩니다.
생성된 bcrypt 해시값을 복사하거나 TXT 파일로 저장할 수 있습니다.
원본 텍스트를 입력한 뒤 bcrypt Hash 생성하기 버튼을 눌러주세요.
원본 텍스트와 bcrypt 해시값이 일치하는지 확인합니다.
일반적인 bcrypt 해시는 $2a$, $2b$, $2y$ 접두사를 포함하며 전체 길이는 보통 60자입니다.
로그인, 회원가입, 인증 시스템을 개발할 때 비밀번호 해시 방식의 동작을 테스트하거나 bcrypt 해시와 원본 텍스트의 일치 여부를 확인할 때 사용할 수 있습니다.
bcrypt는 비밀번호 저장에 자주 사용되는 단방향 해시 알고리즘입니다. salt가 포함되어 같은 비밀번호를 입력해도 매번 다른 해시값이 생성됩니다.
SHA-256은 빠른 해시 계산에 적합하지만 비밀번호 저장용으로는 별도의 salt와 반복 연산 설계가 필요합니다. bcrypt는 비밀번호 저장을 목적으로 설계되어 salt와 Cost Factor를 통해 공격 비용을 높일 수 있습니다.
bcrypt는 내부적으로 salt를 사용합니다. salt는 해시마다 다르게 적용되므로 같은 원본 텍스트라도 매번 다른 해시값이 생성됩니다.
불가능합니다. bcrypt는 단방향 해시 방식이므로 원본을 복호화하지 않고, 입력값을 다시 해시 검증하여 일치 여부만 확인합니다.
입력한 원본 텍스트와 저장된 bcrypt 해시를 비교하여 같은 원본에서 만들어진 해시인지 확인합니다. salt 정보는 bcrypt 해시 문자열 안에 포함되어 있습니다.
테스트 문자열을 브라우저에서 bcrypt 해시로 만들고 기존 해시와 일치하는지 확인하는 개발용 도구입니다. bcrypt는 레거시 시스템 호환에 사용할 수 있지만 새 시스템은 Argon2id 같은 현대적 선택을 먼저 검토하고, 실제 사용자 비밀번호는 브라우저 도구에 입력하지 않아야 합니다.
실제 사용자 비밀번호가 아닌 테스트 전용 문자열을 준비합니다.
공백을 포함한 입력이 의도한 값인지 확인하고 UTF-8 72바이트 이하로 입력합니다.
OWASP 최소 권고인 Cost 10에서 시작해 필요한 생성 개수를 선택합니다.
생성 시간과 서로 다른 60자 해시 결과를 확인합니다.
검증 영역에 원문과 해시를 넣어 일치 여부를 확인합니다.
실제 서비스에서는 서버 라이브러리로 성능·Unicode 호환성을 시험하고 비밀번호 정책과 재해시 전략을 설계합니다.
해시가 달라도 각각 compare 함수로 같은 원문과 일치할 수 있습니다. salt는 해시 문자열에 포함됩니다.
문자 수와 바이트 수는 다릅니다. 초과 부분이 구현체에서 조용히 무시되는 충돌을 막기 위해 이 도구는 72바이트를 넘으면 거부합니다.
번들된 bcrypt.js가 Web Crypto 또는 브라우저 난수원을 이용해 salt를 만들고 선택 Cost의 2의 지수적 작업량으로 해시합니다. 입력은 trim하지 않아 앞뒤 공백도 비밀번호의 일부로 보존하며 TextEncoder로 UTF-8 바이트 수를 계산해 72바이트 초과를 차단합니다. 검증은 해시 안의 알고리즘·Cost·salt를 읽어 원문 후보를 다시 계산합니다.
입력과 해시 계산은 번들된 JavaScript로 현재 브라우저에서 처리하며 win-j 서버로 전송하거나 저장하지 않습니다. 그래도 실제 비밀번호는 브라우저 확장, 화면 기록, 클립보드와 로컬 악성 코드에 노출될 수 있으므로 테스트 값만 입력하세요.
Web Crypto 난수로 테스트용 비밀번호 후보를 만듭니다.
비밀번호가 아닌 공개 식별자용 UUID를 생성합니다.
bcrypt의 입력 한도는 바이트 기준입니다. 한글과 이모지는 UTF-8에서 여러 바이트를 사용하므로 72자보다 훨씬 짧아도 한도에 도달할 수 있습니다.
아닙니다. 정상 로그인 성능과 서비스 거부 위험을 함께 측정해야 합니다. OWASP는 bcrypt를 쓸 경우 최소 10을 제시하지만 최종 값은 실제 서버에서 조정해야 합니다.
복호화하지 않습니다. 입력 후보를 같은 Cost와 salt로 계산해 저장된 해시와 일치하는지만 확인합니다.