Bcrypt는 느리고 계산 비용이 높도록 설계된 비밀번호 해싱 함수로, 무차별 대입 공격에 강합니다. 비밀번호를 안전하게 저장하는 업계 표준입니다.
Bcrypt의 작동 원리
Bcrypt는 솔트 및 비용 인자와 함께 Blowfish 암호를 사용합니다. 비용 인자(라운드)는 알고리즘이 수행하는 반복 횟수를 결정합니다 - 1씩 증가할 때마다 계산 시간이 두 배가 되어 공격을 기하급수적으로 어렵게 만듭니다.
왜 Bcrypt를 사용하나요?
빠른 MD5/SHA(비밀번호에 나쁨)와 달리 bcrypt는 의도적으로 느립니다. 이로 인해 무차별 대입 공격이 비실용적입니다. 비용 10은 2^10(1,024)회 반복을 의미하며 해싱에 약 100ms가 걸립니다 - 로그인에는 무시할 수 있지만 수십억 개의 비밀번호를 시도하는 공격자에게는 치명적입니다.
보안 모범 사례
대부분의 애플리케이션에서 비용 10-12를 사용하세요. 비용 10이 현재 권장되는 최소값입니다. 비밀번호에 MD5 또는 SHA-1을 절대 사용하지 마세요 - 깨졌습니다. 평문 비밀번호를 절대 저장하지 마세요. 비밀번호 해싱에는 항상 bcrypt, Argon2 또는 scrypt를 사용하세요.