Node 的内置 crypto 模块提供密码学函数:哈希、加密、随机值生成和 HMAC。最重要的实际应用是 密码哈希处理 — 有一条至关重要的规则:永远不要使用快速的通用哈希算法(MD5/SHA-256)来处理密码。
密码哈希处理:使用一个缓慢的、加盐的算法
js
{ scrypt, randomBytes, timingSafeEqual } ;
{ promisify } ;
scryptAsync = (scrypt);
() {
salt = ().();
derived = (password, salt, );
;
}
() {
[salt, hash] = stored.();
derived = (password, salt, );
hashBuf = .(hash, );
(hashBuf, derived);
}
