Module crypto ที่มากับ Node มีฟังก์ชันเข้ารหัส: การ hash, การเข้ารหัส, การสร้างค่าสุ่ม และ HMAC การใช้งานเชิงปฏิบัติที่สำคัญที่สุด — การ hash รหัสผ่าน — มีกฎสำคัญคือ อย่าใช้ hash ทั่วไปที่เร็ว (MD5/SHA-256) สำหรับรหัสผ่านเด็ดขาด
การ hash รหัสผ่าน: ใช้อัลกอริทึมที่ช้าและมี salt
{ scrypt, randomBytes, timingSafeEqual } ;
{ promisify } ;
scryptAsync = (scrypt);
() {
salt = ().();
derived = (password, salt, );
;
}
() {
[salt, hash] = stored.();
derived = (password, salt, );
hashBuf = .(hash, );
(hashBuf, derived);
}
