Module built-in crypto bọc OpenSSL, gom các nhóm primitive mật mã:
- Hashing —
createHash('sha256'): băm một chiều, không khoá. Dùng cho checksum/toàn vẹn dữ liệu. - HMAC —
createHmac('sha256', key): băm có khoá bí mật, để xác thực rằng dữ liệu do bên biết khoá tạo ra (verify webhook, ký token). - Mã hoá đối xứng —
createCipheriv/createDecipheriv(vd AES-256-GCM): mã hoá/giải mã bằng cùng một khoá + IV. - Bất đối xứng —
generateKeyPair,sign/verify,publicEncrypt(RSA/EC). - Ngẫu nhiên & KDF —
randomBytes,randomUUID,scrypt/pbkdf2để dẫn xuất khoá.
Lưu ý: mật khẩu KHÔNG dùng createHash trơn — hãy dùng KDF có salt như scrypt/pbkdf2 (hoặc bcrypt/argon2). Hash để kiểm tra toàn vẹn, KDF để lưu mật khẩu.