bcrypt란?
bcrypt는 비밀번호 저장을 위해 설계된 비밀번호 해싱 알고리즘입니다. 비밀번호를 무작위 salt와 결합하고 cost factor에 따라 비용이 큰 작업을 반복하므로, 공격자가 각 추측을 테스트하는 데 더 많은 시간이 필요합니다.
이 도구를 사용할 때
- 테스트 계정, seed script 또는 로컬 개발 환경을 위한 bcrypt 해시를 생성합니다.
- cost factor가 달라질 때 출력 형식과 실행 시간이 어떻게 변하는지 비교합니다.
- 비밀번호를 서버로 보내지 않고 바로 복사할 수 있는 해시를 만듭니다.
cost factor 선택 방법
cost 값이 높을수록 속도는 느려지고 일반적으로 더 안전하지만, 애플리케이션의 모든 로그인 시도도 느려집니다. 대화형 시스템에서는 10-12 정도의 cost가 일반적이며, 관리자 전용 또는 트래픽이 적은 워크플로에는 더 높은 값을 사용할 수 있습니다. 비밀번호를 검증할 하드웨어와 같은 종류의 환경에서 cost를 테스트하세요.
기억할 사항
- 생성되는 모든 해시는 새로운 무작위 salt를 사용하므로 비밀번호와 cost가 같아도 출력은 달라집니다.
- 원래 비밀번호가 아니라 bcrypt 해시를 저장하세요.
- bcrypt는 비밀번호에 사용하고, 파일 checksum, 서명 또는 일반 해싱에는 사용하지 마세요.
- 검증 동작을 일정하게 유지하고 사용자 계정 존재 여부가 드러나지 않게 하세요.