이 도구에 대하여
scrypt KDF 해시 생성기 & 검증기는 scrypt 출력을 브라우저에서 로컬로 유도하고 확인합니다. Colin Percival이 설계하고 RFC 7914로 표준화한 scrypt는 메모리 하드 키 유도 함수입니다: 그 비용이 의도적으로 메모리 대역폭에 지배되어 맞춤형 크래킹 하드웨어가 얻는 이점이 거의 없습니다. 파이프라인은 비밀번호를 확장하는 PBKDF2-HMAC-SHA256, 대규모 순차 메모리 사용을 강제하기 위해 BlockMix와 Salsa20/8 코어 위에 구축된 ROMix 함수, 그리고 선택한 길이의 유도 키를 생성하는 최종 PBKDF2-HMAC-SHA256입니다.
생성 모드는 crypto.getRandomValues에서 16바이트의 무작위 솔트를 읽고 세 가지 코스트 파라미터로 scrypt를 실행합니다: N은 CPU/메모리 비용이며 2의 거듭제곱이어야 하고(기본값 16384 = 2^14), r은 블록 크기(기본값 8), p는 병렬화 팩터(기본값 1)입니다. 메모리 사용량은 대략 128 · N · r 바이트 — 기본값에서 약 16 MiB — 이며, 도구는 설정이 256 MiB를 초과하면 경고합니다. 출력은 자기 기술적 문자열 $scrypt$ln=14,r=8,p=1$<base64 salt>$<base64 key>로, ln = log2(N)이므로 검증에 필요한 모든 파라미터가 해시와 함께 담깁니다.
검증 모드는 그 문자열에서 ln, r, p, 솔트, 저장된 키를 파싱하고, 후보 비밀번호로 유도 키를 재계산한 다음, 상수 시간 비교로 일치 또는 불일치를 보고합니다. scrypt 코어는 브라우저의 엄격한 보안 정책 아래 eval 없는 WebAssembly 빌드로 실행되므로, 비밀번호는 100% 브라우저에서 처리되며 아무것도 업로드되지 않습니다.