Scrypt 생성기
무작위 또는 사용자 지정 솔트로 비밀번호에서 scrypt 키를 도출하세요. 비용 지수는 최대 15 (N 최대 32768), 블록 크기 r은 최대 8, 병렬 처리도 p는 최대 4로 설정할 수 있으며 키 길이는 16~64바이트로 지정할 수 있습니다. 이 도구는 RFC 7914을 따르며 키, 사용된 솔트 및 매개변수를 16진수 또는 Base64 형식으로 반환하므로 Node.js crypto.scrypt, Python hashlib 또는 libsodium과 비교할 수 있습니다. 비밀번호는 응답에 포함되지 않습니다.
자주 묻는 질문
scrypt란 무엇인가요?
Scrypt는 Colin Percival이 만든 메모리 집약형 키 도출 함수로, RFC 7914에서 표준화되었습니다. 비밀번호와 솔트로 키를 도출하며, 매번 많은 메모리를 사용하도록 합니다. 비밀번호 저장, 디스크 암호화 및 일부 암호화폐에 사용됩니다.
N, r, p는 무엇을 의미하나요?
N은 CPU 및 메모리 비용으로 2의 거듭제곱이어야 합니다. r은 블록 크기이고 p는 병렬화 계수입니다. 메모리 사용량은 대략 128 × N × r바이트이므로 N = 16384, r = 8이면 16 MiB가 필요합니다. 여기서 N은 최대 32768, r은 최대 8, p는 최대 4까지 설정할 수 있습니다.
기본 매개변수는 무엇인가요?
기본값은 N = 16384 (비용 지수 14), r = 8, p = 1, 키 길이 32바이트입니다. 이는 scrypt 논문에서 권장하는 대화형 설정입니다. 시스템이 허용하는 범위에서 N을 늘려 보호 수준을 높이세요.
솔트는 어떻게 선택하나요?
솔트 필드를 비워 두면 도구가 무작위 바이트 16개를 생성해 결과에 표시합니다. 솔트를 입력하면 UTF-8 바이트가 사용되므로 다른 시스템에서 키를 재현할 수 있습니다. 서로 다른 비밀번호에 같은 솔트를 재사용하지 마세요.
RFC 7914 테스트 벡터를 재현할 수 있나요?
예. 비밀번호 pleaseletmein, 솔트 SodiumChloride, 비용 지수 14, r = 8, p = 1, 키 길이 64바이트를 사용하면 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887이 생성됩니다. RFC의 세 번째 벡터입니다.
매개변수에 상한을 두는 이유는 무엇인가요?
Scrypt는 실제 메모리를 할당하며 공유 서버에서 실행됩니다. N을 32768, r을 8, p를 4로 제한하면 각 키 도출의 메모리 사용량은 약 32 MiB 미만이고 처리 시간은 1~2초 이내로 유지됩니다.
scrypt 비밀번호 해시는 어떻게 저장하나요?
나중에 비밀번호를 확인하려면 키, 솔트, N, r, p가 모두 필요하므로 함께 저장하세요. Node.js crypto.scrypt 같은 라이브러리는 저장 형식을 사용자가 정하도록 하고, 다른 라이브러리는 자체 문자열 형식을 사용합니다.
결과에 비밀번호가 포함되나요?
아니요. 응답에는 키, 솔트, 매개변수가 포함되지만 비밀번호는 포함되지 않습니다. 로그에 기록하거나 저장하지 않습니다.
scrypt와 Argon2 중 무엇을 사용해야 하나요?
둘 다 메모리 집약적이며 비밀번호에 적합합니다. Argon2id가 최신 권장 방식이고 조정하기도 더 쉽지만, scrypt는 Node.js 및 Python 같은 표준 라이브러리에서 폭넓게 지원됩니다.
16진수 및 Base64 옵션은 무엇을 바꾸나요?
결과에서 키와 솔트를 표시하는 방식을 바꿉니다. 바이트는 같으므로 코드에서 읽을 수 있는 형식을 선택하세요.