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

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


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

ไวยากรณ์

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

พารามิเตอร์

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

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

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

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

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

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

ตัวอย่าง

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

โหนด pbkdf2Sync.js

pbkdf2Sync.js

// ตัวอย่างการสาธิต crypto.pbkdf2() // การนำเข้า crypto moduleconst crypto =require('crypto');// การกำหนด pbkdf2 ด้วย optionsconst pbkdfKey =crypto.pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512');// การพิมพ์ที่ได้รับKeyconsole.log("คีย์คือ:",pbkdfKey.toString('hex'));

ผลลัพธ์

C:\home\node>> โหนด pbkdf2Sync.jskey คือ:3745e482c6e0ade35da10139e797157f4a5da669dad7d5da88ef87e47471cc47ed941c7ad618e827304f083f8707f12b7cfdd5f10cc2cc2693d 

ตัวอย่าง

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

// crypto.pbkdf2Sync () ตัวอย่างการสาธิต // การนำเข้า crypto moduleconst crypto =require('crypto');// การกำหนด pbkdf2Sync ด้วย optionsconst pbkdfKey =crypto.pbkdf2Sync('secret', 'salt', 100, 32, 'sha1');// การพิมพ์ที่ได้รับKeyconsole.log("คีย์คือ:",pbkdfKey);console.log("key(in hex) คือ:",pbkdfKey.toString('hex')); console.log("key(in base64) คือ:",pbkdfKey.toString('base64'));

ผลลัพธ์

C:\home\node>> โหนด pbkdf2Sync.jskey คือ:<บัฟเฟอร์ b7 36 35 f7 c0 88 2e 1f c3 ba 6e 29 b1 4a f1 27 4d f8 48 28b4 d1 8f cc 22 2e b5 74 45 5f 50 5d>คีย์ (ในรูปฐานสิบหก) is:b73635f7c0882e1fc3ba6e29b14af1274df84828b4d18fcc222eb574455f505dkey (ใน base64) คือ:tzY198CILh/Dum4psUrxJ034SCi00Y/Mii61dEVfUF0=