비밀번호 해시 (scrypt/bcrypt)
scrypt와 bcrypt 알고리즘으로 비밀번호를 해시하거나, 해시와 비밀번호의 일치 여부를 검증합니다.
🔒모든 처리는 브라우저에서 이루어지며, 파일 및 데이터는 서버로 전송되지 않습니다.
이 도구에 대해
scrypt와 bcrypt는 비밀번호 저장을 위해 설계된 느린 키 파생 함수입니다. 무차별 대입 공격에 저항하도록 의도적으로 계산 비용을 높여 동일한 비밀번호라도 연산이 오래 걸리게 합니다. 두 알고리즘 모두 솔트(salt)를 해시 내부에 포함하여 동일한 비밀번호라도 매번 다른 해시가 생성됩니다.
주요 기능
- •scrypt, bcrypt 알고리즘 선택
- •해시 생성과 검증 모드 전환
- •scrypt: N, r, p, dkLen 파라미터 조절
- •bcrypt: cost factor 조절 (10~14)
- •결과 클립보드 복사
- •모든 처리는 브라우저에서 수행 (서버 전송 없음)
사용 방법
- 1알고리즘(scrypt 또는 bcrypt)을 선택하고 모드(해시 생성 또는 검증)를 고르세요.
- 2해시 생성 모드: 비밀번호 입력 후 파라미터를 조정하고 '해시 생성'을 누르세요.
- 3검증 모드: 비밀번호와 대조할 해시를 입력한 뒤 '검증' 버튼을 누르세요.
자주 묻는 질문
scrypt와 bcrypt 중 어느 것을 써야 하나요?
bcrypt는 오랫동안 검증된 표준이며 구현 라이브러리가 풍부합니다. scrypt는 메모리 사용량까지 고려하여 하드웨어 공격(ASIC/GPU)에 더 강합니다. 보안이 중요하고 성능 여유가 있다면 scrypt, 호환성과 안정성을 우선하면 bcrypt를 권장합니다.
scrypt 파라미터 값은 어떻게 정하나요?
N은 CPU/메모리 비용(2의 거듭제곱, 대개 2^14~2^20), r은 블록 크기(보통 8), p는 병렬화 계수(보통 1)입니다. 브라우저 환경에서는 기본값(N=2^14)을 권장하며, 서버 성능에 따라 상향 조정하세요. N 값이 너무 크면 브라우저가 응답하지 않을 수 있습니다.
bcrypt cost factor는 어떻게 정하나요?
cost가 1 증가할 때마다 연산 시간이 2배가 됩니다. 일반적으로 10~14가 적정선이며, 현재 하드웨어에서 약 100ms~1s 정도 걸리는 값을 선택합니다. 14 이상은 브라우저에서 체감 지연이 클 수 있습니다.
왜 같은 비밀번호인데 해시가 매번 다른가요?
scrypt와 bcrypt는 랜덤 솔트를 생성하여 해시에 포함시키기 때문입니다. 솔트 덕분에 사전 계산된 해시 테이블(레인보우 테이블) 공격을 방지할 수 있습니다. 검증 시에는 저장된 해시 내부의 솔트를 그대로 사용하여 재계산한 결과가 일치하는지 확인합니다.