什么是 scrypt?
scrypt 是一种内存困难型基于密码的密钥派生函数(KDF)。它将密码和盐转换为确定性的密钥字节,同时刻意消耗 CPU 时间和内存,使大规模密码猜测比简单哈希更加昂贵。
要点:
- 使用
N(成本因子)、r(块大小)和p(并行度) - 更高的
N和r设置会增加内存和计算成本 - 只有在密码、盐、参数和输出长度都匹配时,才会生成相同的派生密钥
最佳实践:
- 为每个密码或秘密使用唯一的随机盐
- 将
N、r、p、盐格式和输出长度与派生密钥一起存储 - 在生产环境使用前,先在需要支持的最慢设备上调校参数