해시/암호화

Bcrypt Hash + Verify

bcrypt로 비밀번호를 해시화하고(랜덤 솔트와 조정 가능한 비용) 기존 bcrypt 해시와 비밀번호를 대조 검증합니다.


                    

Bcrypt is a deliberately slow password-hashing algorithm: unlike MD5 or SHA-256, it intentionally requires heavy computation so that brute-forcing passwords stays impractical even if a database of hashes leaks.

How to use it

Common uses

Things to keep in mind

Pick a cost factor that keeps hashing around 100-300ms on your target server — a balance between security and login-time load.

Bcrypt truncates passwords longer than 72 bytes — characters beyond that limit are ignored by the algorithm.

이 도구에 대한 아티클: Bcrypt: 비밀번호를 빠르게가 아니라 느리게 해시하는 이유

자주 묻는 질문

솔트를 직접 관리해야 하나요?

아니요. bcrypt는 해시화할 때마다 랜덤 솔트를 자동으로 생성해 해시 문자열 안에 포함시키므로 별도로 솔트를 저장하거나 관리할 필요가 없습니다.

비밀번호가 아주 길어도 안전한가요?

bcrypt는 72바이트를 넘는 부분을 조용히 잘라냅니다. 즉 72바이트 이후의 문자는 해시 결과에 아무런 영향을 주지 않으니, 매우 긴 비밀번호를 사용할 때는 이 점을 염두에 두세요.

비용(cost) 값은 어떻게 정해야 하나요?

비용은 값이 1 증가할 때마다 계산 시간이 두 배가 되는 지수적 관계입니다. 값이 클수록 무차별 대입 공격에 강해지지만 해시 계산도 느려지므로, 서버 하드웨어 성능에 맞춰 적절한 값을 선택해야 합니다.

bcrypt에는 비밀번호 길이 제한이 있나요?

네, bcrypt는 비밀번호의 처음 72바이트만 처리하며 그보다 긴 부분은 경고 없이 버려집니다. 실제로는 문제가 되는 경우가 드물지만, 매우 긴 비밀번호나 한 글자가 여러 바이트를 차지하는 비-ASCII 문자를 다룰 때는 이 점을 기억해야 합니다.

Argon2가 있는데도 bcrypt를 여전히 권장하는 이유는 무엇인가요?

bcrypt는 수십 년간 실전에서 검증되었고 거의 모든 언어와 프레임워크에서 널리 지원되며 여전히 충분히 안전한 선택입니다. Argon2는 GPU/ASIC 공격에 대한 방어력 때문에 새 시스템에서 우선적으로 권장되지만, bcrypt가 위험하다는 뜻은 아니며 단지 전용 하드웨어에 대한 저항력이 상대적으로 낮을 뿐입니다.

아티클: 해시/암호화

Hash Generator: MD5, SHA-1, SHA-256은 서로 어떻게 다른가

MD5가 아직도 파일 무결성 검증에는 쓰이지만 비밀번호에는 쓰이지 않는 이유.

Checksum Verifier: 파일이 손상되지 않았는지 확인하는 방법

일치하는 체크섬이 파일의 무결성은 확인해주지만 누가 만들었는지는 확인해주지 않는 이유.

HMAC: 키가 있는 해시는 일반 해시와 어떻게 다른가

일반 SHA-256이 메시지 위변조를 막지 못하지만 HMAC은 막을 수 있는 이유.

UUID: 거의 절대 중복되지 않는 식별자는 어떻게 만들어지는가

UUID v4를 수백만 대의 기계에서 충돌 위험 없이 독립적으로 생성할 수 있는 이유.

비밀번호 생성기: 비밀번호를 진짜로 강하게 만드는 것

사전 단어로 만든 긴 비밀번호가 기호와 숫자가 든 짧은 비밀번호보다 강한 이유.

AES: 대칭 암호화는 어떻게 동작하는가

AES에서 같은 키가 데이터를 암호화하고 복호화하는 이유, 그리고 이것이 비대칭 암호화와 다른 점.

Argon2: 이 알고리즘이 비밀번호 해싱 경진대회에서 우승한 이유

Argon2가 오래된 비밀번호 해싱 알고리즘보다 GPU를 이용한 공격을 더 잘 방어하는 방법.

Scrypt: 이 알고리즘이 왜 그렇게 많은 메모리를 필요로 하는가

scrypt가 ASIC 장치에서의 크래킹을 어렵게 만들기 위해 일부러 많은 메모리를 요구하는 이유.

TOTP: 인증 앱의 일회용 코드는 어떻게 작동하는가

Google Authenticator의 코드가 인터넷 없이 작동하고 시간만으로 서버와 동기화되는 이유.

PBKDF2: 가장 오래된 키 스트레칭 표준

PBKDF2의 권장 반복 횟수가 매년 늘어나는 이유.

X.509: SSL 인증서 안에는 무엇이 들어있는가

초록색 자물쇠를 보여주기 전에 브라우저가 사이트 인증서에서 정확히 무엇을 확인하는지.

PGP: 공개 키와 개인 키 암호화는 어떻게 작동하는가

PGP 공개 키는 자유롭게 공유할 수 있지만 개인 키는 절대 공유해서는 안 되는 이유.