Module tích hợp crypto của Node cung cấp các hàm mật mã: hashing, mã hóa, giá trị ngẫu nhiên và HMAC. Ứng dụng thực tế quan trọng nhất — hash mật khẩu — có một quy tắc then chốt: đừng bao giờ dùng hash nhanh, đa dụng (MD5/SHA-256) cho mật khẩu.
Hash mật khẩu: dùng thuật toán CHẬM, có salt
{ scrypt, randomBytes, timingSafeEqual } ;
{ promisify } ;
scryptAsync = (scrypt);
() {
salt = ().();
derived = (password, salt, );
;
}
() {
[salt, hash] = stored.();
derived = (password, salt, );
hashBuf = .(hash, );
(hashBuf, derived);
}
