scrypt 해시 생성기
무료 온라인 scrypt 해시 생성기 도구. 100% 로컬 처리 — 데이터가 기기를 벗어나지 않습니다.
결과가 여기에 표시됩니다...
입력 → 해시 계산
Usage Guide
scrypt 소개
scrypt(RFC 7914)는 CPU 시간과 메모리를 모두 많이 소비하도록 설계된 메모리 하드 패스워드 기반 키 도출 함수입니다. PBKDF2와 bcrypt를 위협하는 GPU, FPGA, ASIC 브루트포스 공격에 저항하기 위해 만들어졌습니다. scrypt는 라이트코인(Litecoin) 작업 증명, 패스워드 관리자, 안전한 키 도출 등에 사용됩니다. 세 가지 비용 파라미터로 보안과 성능의 균형을 조정할 수 있습니다.
사용 방법
scrypt는 단방향 키 도출 함수로 역산이 불가능합니다:
출력 형식
scrypt는 나중에 검증할 때 필요한 전체 파라미터 문자열을 출력합니다:
scrypt 파라미터 선택
보안 요구사항과 허용 가능한 지연 시간에 따라 파라미터를 선택합니다:
FAQ
Q: scrypt가 하드웨어 공격에 강한 이유는 무엇인가요?
A: scrypt는 메모리 하드입니다: 내부 ROMix 알고리즘이 큰 메모리 블록(128 × N × r 바이트)에 의사 난수 순서로 접근해야 합니다. 이 순차적 메모리 접근 패턴은 SHA-256처럼 병렬화할 수 없습니다 — N=16384, r=8에서는 약 16 MB의 랜덤 접근이 필요하여 SHA-256이나 PBKDF2 같은 순수 계산 해시보다 GPU/ASIC 하드웨어에서의 공격 비용이 수 배 더 높습니다.
Q: scrypt는 bcrypt 및 Argon2와 어떻게 다른가요?
A: 세 가지 모두 패스워드 해싱 알고리즘이지만 설계가 다릅니다: bcrypt(1999)는 시간 비용만 높고(고정 4 KB 메모리) GPU 공격에 점점 취약해지고 있습니다. scrypt(2009)는 메모리 하드로 GPU/ASIC에 강하지만 복잡한 파라미터 상호작용이 있습니다(큰 N은 p를 통해 CPU 비용도 증가시킴). Argon2id(2015, PHC 우승)는 메모리 하드, GPU 내성이 있으며 시간/메모리/병렬성 파라미터가 독립적입니다. OWASP와 NIST는 새 시스템에 Argon2id를 권장하며 scrypt는 강력한 2위 선택입니다.
Q: N이 2의 거듭제곱이어야 하는 이유는 무엇인가요?
A: scrypt의 ROMix 알고리즘은 내부적으로 N을 룩업 테이블 크기로 사용하고 효율적인 랜덤 접근을 위해 비트 마스킹(index & (N-1))에 의존합니다. 이 마스크 기법은 N이 2의 거듭제곱일 때만 올바르게 동작합니다. 일반적인 값: 대화형 사용에는 16384(2¹⁴), 파일 암호화에는 1048576(2²⁰).
Q: scrypt 출력을 암호화 키로 직접 사용할 수 있나요?
A: 예 — scrypt는 키 재료를 생성하기 위해 특별히 설계되었습니다. 32바이트(256비트) 출력은 AES-256 키 또는 ChaCha20-Poly1305 키로 적합합니다. 그러나 동일한 scrypt 도출을 여러 목적(예: 인증과 암호화 모두)에 사용하지 마세요 — 다른 솔트로 별도의 키를 도출하거나 HKDF와 같은 KDF를 사용하여 하나의 루트 키를 확장하세요.
Q: 검증 입력 형식은 무엇인가요?
A: 저장된 scrypt 해시에 대해 패스워드를 검증하려면 패스워드와 전체 scrypt 출력 문자열을 파이프 문자로 구분하여 입력합니다: password|16384:8:1:salt_base64:key_hex. 도구는 저장된 파라미터를 사용해 키를 재도출하고 저장된 키와 비교합니다. 일치하면 '✓ 패스워드 확인됨'을 반환합니다.
Q: scrypt는 데이터베이스 패스워드 저장에 적합한가요?
A: 예, 적절한 파라미터를 사용하면 됩니다. 사용자별로 전체 문자열(n:r:p:salt:key)을 저장합니다 — 미래 검증에 필요한 모든 것이 포함되어 있습니다. 대화형 로그인에는 최소 N=16384, r=8, p=1을 사용하고 보안이 더 중요한 애플리케이션에는 N을 늘리세요. 현재 권장 사항은 OWASP 패스워드 저장 치트시트 를 참조하세요.
Use Cases
권장: 패스워드 저장
scrypt는 데이터베이스에 저장하기 전 패스워드를 해싱하는 데 탁월한 선택입니다. 메모리 하드 특성 덕분에 오프라인 브루트포스 공격이 PBKDF2나 bcrypt보다 수 배 더 비쌉니다. 웹 애플리케이션에는 N≥16384를, 더 민감한 시스템에는 더 높은 값을 사용하세요.
- ✅ 대화형 웹 로그인에는 scrypt N=16384, r=8, p=1
- ✅ 전체 n:r:p:salt:key 문자열 저장 — 키만 저장하지 말 것
- ✅ 사용자별 고유한 랜덤 솔트 사용(이 도구가 자동 생성)
- ❌ N<1024인 scrypt 사용 금지 — 작업 인수 부족
- 💡 새 프로젝트에는 Argon2id 고려 — 현재 OWASP 권장 사항
권장: 디스크 암호화 키 도출
scrypt는 디스크 또는 파일 암호화를 위해 패스프레이즈에서 암호화 키를 도출하는 데 매우 적합합니다. 도출이 마운트 시 한 번만 수행되고 추가적인 몇 초의 지연이 허용 가능하므로 높은 파라미터(N=1048576)가 적절합니다. 도출된 키는 AES-256-GCM으로 직접 사용할 수 있습니다.
- ✅ 디스크/파일 암호화 키 도출에는 scrypt N=1048576(2²⁰)
- ✅ 32바이트 출력을 AES-256-GCM 키로 직접 사용
- ✅ scrypt 파라미터와 솔트를 암호화된 데이터와 함께 저장
- ❌ 인증과 암호화 모두에 동일한 도출 키 사용 금지
권장: 암호화폐 애플리케이션
scrypt는 라이트코인(및 다른 암호화폐)의 작업 증명 알고리즘으로 채택되었습니다. 지갑 애플리케이션에서는 니모닉이나 패스프레이즈에서 개인 키를 도출하는 데 scrypt를 사용합니다. 메모리 하드 특성은 ASIC 채굴 이점에 저항하기 위해 특별히 선택되었습니다.
- ✅ 사용자 패스프레이즈에서 지갑 키 도출에 scrypt
- ✅ 패스프레이즈 보호 키 저장에 scrypt
- ❌ PoW 채굴 애플리케이션에는 구현 특화 파라미터 사용
비권장: 인증이 필요 없는 상황
scrypt는 키를 도출합니다 — 그 자체로는 인증이나 무결성을 제공하지 않습니다. 메시지 인증 코드가 필요하다면 HMAC-SHA256 을 사용하세요. 빠른 데이터 체크섬이 필요하다면 SHA-256 을 사용하세요. scrypt의 계산 비용으로 인해 고용량 작업에는 부적합합니다.
- ❌ 범용 해싱에 scrypt 사용 금지(SHA-256 사용)
- ❌ HMAC 또는 메시지 인증에 scrypt 사용 금지
- ❌ 고빈도 작업(API 요청 서명, 요청별 토큰)에 scrypt 사용 금지
- ✅ 패스워드 보호 특성이 명시적으로 필요한 경우에만 scrypt 사용
모범 사례 요약
- scrypt는 메모리 하드 KDF — 패스워드 해싱 및 패스프레이즈에서의 키 도출에 적합합니다.
- 항상 전체 파라미터 문자열(n:r:p:salt:key)을 저장 — 키만 저장하지 말 것.
- N은 2의 거듭제곱이어야 합니다. 기본값 N=16384, r=8, p=1은 대화형 로그인에 적합합니다.
- 새 애플리케이션에는 OWASP가 Argon2id를 첫 번째 선택으로 권장하며 scrypt는 강력한 두 번째 선택입니다.
- scrypt는 범용 해싱, MAC, 고빈도 작업에는 적합하지 않습니다 — 이런 경우 SHA-256이나 HMAC를 사용하세요.