เมธอด crypto.pbkdf2Sync() (Password-Based Key Derivation Function 2) ให้การทำงานแบบ synchronous เพื่อสร้างคีย์จาก password, salt และ iterations โดยใช้ HMAC digest ของอัลกอริทึมที่ระบุ
ไวยากรณ์
crypto.pbkdf2Sync(password, salt, iterations, keylen, digest)
พารามิเตอร์
- password – รหัสผ่าน (string, Buffer, DataView, ฯลฯ)
- salt – ค่า salt (string, Buffer, DataView, ฯลฯ)
- iterations – จำนวนรอบการทำซ้ำ (ตัวเลข)
- keylen – ความยาวคีย์ที่ต้องการเป็นไบต์ (ตัวเลข)
- digest – อัลกอริทึม HMAC (ค่าเริ่มต้น:
sha1)
ตัวอย่าง: ใช้ SHA-512
const crypto = require('crypto');
const pbkdfKey = crypto.pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512');
console.log("key is: ", pbkdfKey.toString('hex'));
ผลลัพธ์
key is: 3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e47471cc47ed941c7ad618e827304f083f8707f12b7cfdd5f489b782f10cc269e3c08d59ae
ตัวอย่าง: ใช้ SHA-1 แสดงหลาย encoding
const pbkdfKey = crypto.pbkdf2Sync('secret', 'salt', 100, 32, 'sha1');
console.log("key is: ", pbkdfKey);
console.log("key (hex): ", pbkdfKey.toString('hex'));
console.log("key (base64): ", pbkdfKey.toString('base64'));
ผลลัพธ์
key is:
key (hex): b73635f7c0882e1fc3ba6e29b14af1274df84828b4d18fcc222eb574455f505d
key (base64): tzY198CILh/Dum4psUrxJ034SCi00Y/Mii61dEVfUF0=