scrypt 派生与验证
明确设置 N、r、p 参数派生 scrypt 密钥,导出完整 JSON 参数记录并在本地验证。
保存密钥时同时保存参数
scrypt 的输入包括密码、盐值、N、r、p 和输出长度。本工具返回 algorithm=scrypt、version=1、上述参数及小写十六进制 salt/hash 字段。JSON 包装是本工具的交换格式,不冒充通用 scrypt 密码字符串标准。
验证需要完整记录及候选密码,先检查资源成本,再计算并比较字节。记录中的参数可用于 Node crypto.scrypt 或 Python hashlib.scrypt 复现。密码采用 UTF-8,不做规范化。
内存与浏览器限制
默认为 N=131072、r=8、p=1、32 字节密钥及随机 16 字节盐。N 必须为 2–262144 范围内的 2 的幂;r 为 1–32,p 为 1–8,输出为 1–128 字节。为复现公开向量,自定义十六进制盐可为空;短盐会显示诊断。
估算工作区 128×r×(N+p)+256×r 不超过 256 MiB,N×r×p 不超过 16777216。Worker 可取消,30 秒后超时。参数可运行不等于适合生产安全策略。
参考
常见问题
为什么不直接输出一个通用 scrypt 字符串?
不同应用使用不同包装格式。JSON 记录明确每个参数和字节编码,接入其他应用时需按其格式转换。
p 会创建浏览器线程吗?
不会。p 是 scrypt 算法参数;固定版本 WASM 实现在一个浏览器 Worker 内执行。
输入会上传吗?
不会。处理在浏览器中执行,引擎从本站加载;工具不将输入发送至处理 API,也不保存输入。清除可移除可见输入与结果。