Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

crypto.pbkdf2() วิธีการใน Node.js


crypto.pbkdf2() หรือที่รู้จักในชื่อฟังก์ชันการสร้างคีย์จากรหัสผ่าน จัดให้มีการใช้งานฟังก์ชันอนุพันธ์แบบอะซิงโครนัส คีย์ได้มาจากการใช้ไดเจสต์ Hmac ของอัลกอริธึมที่ระบุจากรหัสผ่าน เกลือ และการวนซ้ำ

ไวยากรณ์

crypto.createHmac(อัลกอริทึม คีย์ [ตัวเลือก])

พารามิเตอร์

พารามิเตอร์ข้างต้นอธิบายไว้ด้านล่าง −

  • รหัสผ่าน – รหัสผ่านที่กำหนดไว้สำหรับการรับคีย์ของความยาวไบต์ที่ร้องขอ ค่าที่เป็นไปได้ ได้แก่ ประเภทสตริง DataView บัฟเฟอร์ ฯลฯ

  • เกลือ – คล้ายกับรหัสผ่านเพื่อรับรหัส ค่าที่เป็นไปได้ ได้แก่ ประเภทสตริง DataView บัฟเฟอร์ ฯลฯ

  • ซ้ำ – รับคีย์ที่ต้องการของความยาวไบต์ที่ร้องขอ รับค่าเป็นตัวเลข

  • คีเลน – นี่คือความยาวไบต์ที่ร้องขอของคีย์ เป็นประเภทหมายเลข

  • ย่อย – อัลกอริทึม Hmac ถูกระบุโดยค่าไดเจสต์นี้ ค่าเริ่มต้นคือ 'sha1'

  • โทรกลับ – หากมีข้อผิดพลาดใด ๆ เกิดขึ้นในโหมด async จะถูกจัดการในการเรียกกลับ

ตัวอย่าง

สร้างไฟล์ที่มีชื่อ – pbkdf2.js และคัดลอกข้อมูลโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อเรียกใช้โค้ดนี้ดังแสดงในตัวอย่างด้านล่าง −

โหนด pbkdf2.js

pbkdf2.js

// ตัวอย่างการสาธิต crypto.pbkdf2() // การนำเข้า crypto moduleconst crypto =require('crypto'); // การกำหนด pbkdf2 ด้วย optionscrypto.pbkdf2('secret', 'salt', 100000, 64 ต่อไปนี้ , 'sha512', (err, earnKey) => { if (err) throw err; // การพิมพ์คีย์ที่ได้รับ console.log ("Key Derived:",derivedKey.toString('hex'));});

ผลลัพธ์

C:\home\node>> โหนด pbkdf2.jsKey Derived:3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e47471cc47ed941c7ad618e827304f083f8707f12b7cfdd5f10cc278d 

ตัวอย่าง

ลองดูอีกตัวอย่างหนึ่ง

// ตัวอย่างการสาธิต crypto.pbkdf2() // การนำเข้า crypto moduleconst crypto =require('crypto'); // การกำหนด pbkdf2 ด้วย optionscrypto.pbkdf2('secret', 'salt', 100, 64 ต่อไปนี้ , 'sha1', (err, earnKey) => { if (err) throw err; // การพิมพ์คีย์ที่ได้รับ console.log ("Key Derived:",derivedKey); console.log ("Key Derived in hex:" ,derivedKey.toString('hex')); console.log("คีย์ที่ได้รับใน base64:",derivedKey.toString('base64'));});

ผลลัพธ์

C:\home\node>> โหนด pbkdf2.jsKey ที่ได้รับ:<บัฟเฟอร์ b7 36 35 f7 c0 88 2e 1f c3 ba 6e 29 b1 4a f1 27 4d f8 48 28 b4 d1 8f cc 22 2e b5 74 45 5f 50 5d 3d 23 19 13 84 2d e1 91 A7 83 e2 00 73 37 4e 4a 24 b6 ...> Key มาในฐานสิบหก:b73635f7c0882e1fc3ba6e29b14af1274df84828b4d18fcc222eb574455f505d3d2319132d84e191a783e200734e374a24b62cfab65dfb5e9dc28ae147072419Key มาใน base64:tzY198CILh / Dum4psUrxJ034SCi00Y / MIi61dEVfUF09IxkTLYThkaeD4gBzTjdKJLYs + + RZD 16dworhRwckGQ ==