-
参数详解
Cost Factor (N): 迭代次数。值越高,计算所需内存和时间越多。必须是2的幂。
Block Size (r): 指定内存操作块的大小,通常设置为 8。
Parallelization (p): 并行度,通常为 1。增加此值可以利用更多处理器核心。
深度解析:为什么选择 Scrypt?
内存硬度 (Memory Hardness)
与 MD5 或 SHA 不同,Scrypt 故意设计得“慢”且“耗内存”。它通过填满大量的内存缓冲区来强制计算,这使得攻击者无法利用 GPU 或专用芯片 (ASIC) 进行大规模并行破解,大大增加了暴力破解的经济成本。
三个维度锁定安全
Scrypt 通过 N (成本)、r (块大小) 和 p (并行度) 共同决定计算复杂度。
调整这些参数可以平衡安全等级与用户等待时间,是目前防御“彩虹表”和“硬件攻击”的最佳方案之一。
参数配置建议
交互式登录
建议:N=16384, r=8, p=1。计算约耗时 100-200ms,在安全与体验间取得平衡。
文件/冷存储加密
建议:N=65536, r=8, p=1。大幅提升破解门槛,适合对单次计算时长不敏感的场景。
盐值 (Salt) 重要性
严禁使用固定盐值。 必须为每个用户生成随机盐值,以彻底杜绝查表攻击。
性能注意
由于 Scrypt 是计算和内存密集型的,在低端移动设备或旧版浏览器上运行 N=65536 可能会导致明显的浏览器界面冻结。