계산기 & 툴계산기 & 툴
불러오는 중...
보안

🔐
Bcrypt 암호화 복호화 도구

비밀번호를 bcrypt 해시로 변환하고 기존 bcrypt 해시와 원문 비밀번호가 일치하는지 확인하는 도구입니다. Cost factor 설정, UTF-8 72바이트 제한 확인, bcrypt 버전·salt·checksum 구조 분석을 지원합니다.
비밀번호를 bcrypt 해시로 변환하거나, 입력한 비밀번호가 기존 bcrypt 해시와 일치하는지 확인합니다. bcrypt는 단방향 해시이므로 원문을 다시 복호화할 수는 없습니다.

UTF-8 0 / 72바이트
낮음기본높음
현재 설정: 10 · 기본 권장값
(숫자가 1 증가할 때 계산 비용은 대략 2배가 됩니다. 실제 서비스에서는 서버 성능을 기준으로 결정하세요.)

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

이 사이트는 광고 수익으로 유지되고 있습니다. 배너 또는 여기를 클릭하여 구매해 주시면 유지에 도움을 주실 수 있습니다.

Bcrypt 암호화·복호화 도구란?

Bcrypt 암호화·복호화 도구로 많이 검색하지만, bcrypt는 정확히 말하면 암호화 방식이 아니라 비밀번호 저장을 위한 단방향 해시 함수입니다. 따라서 bcrypt로 만든 값을 AES처럼 다시 원래 비밀번호로 복호화할 수는 없습니다. 로그인에서는 사용자가 입력한 비밀번호를 저장된 bcrypt 해시와 다시 비교해 일치 여부를 확인합니다.
이 도구에서는 bcrypt 해시 생성bcrypt 비밀번호 검증을 한 화면에서 수행할 수 있습니다. 생성된 60자 해시를 버전, cost factor, salt, checksum으로 분리해서 보여주기 때문에 백엔드 개발, 인증 오류 확인, 다른 언어·프레임워크에서 생성한 해시 구조를 점검할 때도 활용할 수 있습니다.

Bcrypt는 왜 같은 비밀번호도 해시가 매번 달라지나요?

bcrypt는 해시를 만들 때 무작위 salt를 함께 사용합니다. 따라서 같은 비밀번호를 여러 번 입력해도 생성되는 bcrypt 해시는 달라질 수 있습니다. 이것은 정상 동작이며, 미리 계산한 해시 목록을 이용하는 공격을 어렵게 만드는 데 도움이 됩니다.

Bcrypt 해시 구조

일반적인 bcrypt 해시는 $2b$10$...처럼 시작하며 전체 길이는 60자입니다. 앞부분에는 bcrypt 버전과 cost factor가 들어 있고, 뒤쪽에는 salt와 계산 결과가 함께 저장됩니다. 이 때문에 비밀번호 검증 시 별도의 salt 컬럼을 따로 저장하지 않아도 해시 문자열 자체에서 필요한 값을 읽을 수 있습니다.
  • $2b$: bcrypt 버전 식별자
  • 10: cost factor
  • 22자: bcrypt salt 영역
  • 31자: checksum 영역

Cost factor와 rounds는 무엇인가요?

bcrypt의 cost factor는 해시를 계산할 때 필요한 연산량을 조절하는 값입니다. cost가 1 증가할 때마다 계산 비용은 대략 2배씩 늘어나므로, 값이 높을수록 무차별 대입 공격에는 강해지지만 해시 생성과 로그인 검증에 걸리는 시간도 길어집니다. 이 계산기에서는 테스트하기 쉽도록 4~14 범위에서 값을 설정할 수 있으며, 기본값은 10입니다.
비밀번호 저장 방식과 관련해서는 OWASP의 권장사항도 참고할 수 있습니다. OWASP(Open Worldwide Application Security Project)는 웹 애플리케이션과 소프트웨어 보안을 위한 가이드와 권장사항을 제공하는 비영리 보안 커뮤니티이며, OWASP Password Storage Cheat Sheet에서는 비밀번호를 안전하게 저장하기 위한 방법과 권장 설정을 정리하고 있습니다. OWASP는 기존 시스템에서 bcrypt를 사용할 경우 work factor를 10 이상으로 설정할 것을 권장합니다. 다만 cost가 높을수록 보안성이 좋아지는 대신 서버의 연산 부담도 커지므로, 실제 서비스에서는 단순히 높은 값을 선택하기보다 서버 성능과 로그인 요청량을 고려해 처리 시간을 직접 측정한 뒤 적절한 값을 정하는 것이 좋습니다.

Bcrypt의 72바이트 제한

bcrypt는 대부분의 구현에서 비밀번호 입력의 앞 72바이트를 기준으로 처리합니다. 여기서 중요한 점은 72자가 아니라 72바이트라는 것입니다. 영문자는 보통 1바이트지만, 한글과 이모지는 UTF-8에서 여러 바이트를 사용할 수 있으므로 글자 수가 72자보다 훨씬 적어도 제한에 도달할 수 있습니다. 이 도구는 입력값의 UTF-8 바이트 수를 실시간으로 표시하고 72바이트를 넘으면 해시 생성과 검증을 막습니다.

Bcrypt 복호화 대신 비밀번호를 검증하는 방법

bcrypt 로그인 검증은 저장된 해시에서 원문 비밀번호를 꺼내는 방식이 아닙니다. 사용자가 입력한 비밀번호를 저장된 해시에 포함된 salt와 cost factor를 이용해 다시 계산하고, 최종 결과가 같은지를 비교합니다. 즉 복호화가 아니라 비교 검증입니다.

Bcrypt와 SHA-256의 차이

SHA-256은 파일 무결성 확인이나 일반적인 데이터 해시에 유용하지만 매우 빠르게 계산되도록 설계되었습니다. 비밀번호 저장에서는 빠른 해시가 오히려 공격자가 많은 비밀번호 후보를 짧은 시간에 시험하기 쉽게 만들 수 있습니다. bcrypt는 의도적으로 계산 비용을 높이고 salt를 포함하므로 비밀번호 저장 목적에 더 적합합니다.

새 서비스에서도 bcrypt를 사용하면 되나요?

bcrypt는 널리 사용되지만, OWASP의 현재 비밀번호 저장 가이드에서는 새 시스템에 Argon2id를 우선 권장하고 Argon2id를 사용할 수 없을 때 scrypt 등을 대안으로 제시합니다. bcrypt는 기존 시스템과의 호환이나 레거시 환경에서 여전히 자주 사용됩니다. 어떤 알고리즘을 선택하든 평문 비밀번호를 데이터베이스에 저장해서는 안 됩니다.

Bcrypt 해시를 확인할 때 자주 생기는 문제

  • 비밀번호는 같은데 검증이 실패함: 앞뒤 공백, 문자 인코딩, 입력값 변경 여부를 확인합니다.
  • 해시가 매번 다름: salt가 매번 새로 생성되므로 정상입니다.
  • 다른 언어에서 만든 해시가 검증되지 않음: $2a$, $2b$, $2y$ 등 구현별 접두사 호환성을 확인합니다.
  • 긴 비밀번호가 예상과 다르게 동작함: UTF-8 기준 72바이트 제한을 확인합니다.

자주 묻는 질문

  • Q. Bcrypt 해시를 원래 비밀번호로 복호화할 수 있나요?
    A. 아니요. bcrypt는 단방향 해시이므로 원문을 되돌리는 복호화 기능이 없습니다. 비밀번호가 맞는지는 bcrypt compare 방식으로 검증해야 합니다.
  • Q. 같은 비밀번호인데 bcrypt 결과가 왜 매번 다른가요?
    A. bcrypt가 매번 새로운 salt를 사용하기 때문입니다. 서로 다른 해시가 생성되어도 각각의 해시와 원문 비밀번호를 비교하면 정상적으로 일치할 수 있습니다.
  • Q. Cost factor는 몇으로 설정해야 하나요?
    A. 정답이 하나로 고정되지는 않습니다. OWASP는 bcrypt를 사용하는 레거시 시스템에서 최소 10 이상의 work factor를 안내하며, 실제 환경에서는 서버 성능과 인증 트래픽을 측정해 결정하는 것이 좋습니다.
  • Q. 입력한 비밀번호가 서버에 저장되나요?
    A. 이 페이지의 bcrypt 계산은 브라우저에서 실행되도록 구성되어 있으며, 입력한 비밀번호나 해시를 별도의 API로 전송하거나 저장하지 않습니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

이 사이트는 광고 수익으로 유지되고 있습니다. 배너 또는 여기를 클릭하여 구매해 주시면 유지에 도움을 주실 수 있습니다.

Bcrypt 암호화 복호화 도구
즐겨찾기
메뉴