Bcrypt 생성기
온라인에서 bcrypt 비밀번호 해시를 생성하고 검증하세요. 조정 가능한 비용 인자, 내장 솔트, 실시간 해시 미리보기. 모든 처리는 브라우저에서 로컬로 실행됩니다.
Bcrypt란 무엇인가요?
Bcrypt는 Niels Provos와 David Mazières가 Blowfish 암호를 기반으로 설계한 비밀번호 해시 함수입니다. 안전한 비밀번호 저장을 위해 특별히 설계되었으며 세계에서 가장 널리 사용되는 비밀번호 해시 알고리즘 중 하나입니다.
Bcrypt는 어떻게 작동하나요?
Bcrypt는 비밀번호와 솔트를 입력으로 받아 비용이 큰 키 설정 프로세스(Eksblowfish)를 실행하여 고정 길이의 해시를 생성합니다. 해시에는 알고리즘 식별자, 비용 인자, 솔트 및 실제 해시 값이 포함됩니다.
Bcrypt의 비용 인자란 무엇인가요?
비용 인자는 4에서 31 사이의 숫자로 키 설정 반복 수를 결정합니다. 각 증가는 계산 시간을 두 배로 만듭니다. 비용 10은 2^10 = 1024 반복을 의미합니다. 대부분의 애플리케이션에 권장값은 10-12입니다.
솔트란 무엇이며 왜 중요한가요?
솔트는 각 비밀번호 해시에 고유한 랜덤 128비트 값입니다. 공격자가 사전 계산된 레인보우 테이블을 사용하는 것을 방지하고 동일한 비밀번호가 다른 해시를 생성하도록 보장합니다. Bcrypt는 솔트를 자동으로 생성하여 해시 출력에 포함합니다.
2025년에도 Bcrypt가 안전한가요?
네, Bcrypt는 여전히 권장되는 비밀번호 해시 알고리즘 중 하나입니다. Argon2와 같은 최신 알고리즘이 있지만, 적절한 비용 인자(12 이상)와 함께 사용하면 여전히 안전한 것으로 간주됩니다.
Bcrypt의 최대 비밀번호 길이는 얼마인가요?
Bcrypt의 최대 입력 길이는 72바이트입니다. 72바이트를 초과하는 비밀번호는 조용히 잘립니다. 더 긴 비밀번호의 경우 Bcrypt를 적용하기 전에 SHA-256으로 사전 해시하는 것을 고려하세요.
Bcrypt는 MD5, SHA-256 및 기타 해시 함수와 어떻게 비교되나요?
속도를 위해 설계된 MD5 및 SHA-256과 달리 Bcrypt는 의도적으로 느리고 계산 집약적입니다. 범용 해시 함수는 초당 수십억 번 계산할 수 있어 무차별 대입 공격에 취약합니다.
Bcrypt 해시 형식은 무엇인가요?
Bcrypt 해시는 $2b$cost$salt+hash 형식을 따릅니다. 예: $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy. 접두사 $2b$는 알고리즘 버전을 식별하며, 비용 인자, 22자 솔트, 31자 해시가 뒤따릅니다.
$2a$, $2b$, $2y$의 차이점은 무엇인가요?
이것들은 Bcrypt 버전 식별자입니다. $2a$는 원본 버전, $2b$는 OpenBSD의 비밀번호 길이 처리 사소한 문제를 수정, $2y$는 PHP 전용 변형입니다. 세 가지 모두 호환됩니다.
온라인 Bcrypt 생성기를 사용해도 안전한가요?
처리가 전적으로 브라우저(클라이언트 측)에서 실행될 때 완전히 안전합니다. 비밀번호 데이터가 어떤 서버로도 전송되지 않습니다. 이 도구는 JavaScript를 사용하여 모든 것을 로컬에서 처리합니다.
올바른 비용 인자는 어떻게 선택해야 하나요?
비용 인자는 해시 생성이 허용 가능한 속도를 유지하면서 가능한 한 높아야 합니다. 좋은 경험 법칙: 서버에서 해시에 약 250-500ms가 소요되는 비용을 선택하세요.
Bcrypt를 데이터 암호화에 사용할 수 있나요?
아니요, Bcrypt는 단방향 해시 함수이지 암호화 알고리즘이 아닙니다. 원래 비밀번호를 복원하기 위해 역방향으로 계산할 수 없습니다. 비밀번호 검증을 위해서만 설계되었습니다.
Bcrypt는 왜 의도적으로 느리게 설계되었나요?
Bcrypt는 무차별 대입 및 사전 공격을 계산적으로 비싸게 만들기 위해 의도적으로 느립니다. 일반 해시 함수는 초당 수백만 개의 비밀번호를 처리할 수 있지만 Bcrypt는 수백 개만 처리합니다.
비밀번호와 Bcrypt 해시를 어떻게 검증하나요?
검증하려면 저장된 해시에서 솔트와 비용 인자를 추출하고, 입력 비밀번호에 동일한 매개변수로 Bcrypt를 실행한 다음 결과 해시를 저장된 해시와 비교하세요. 일치하면 비밀번호가 올바릅니다.