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

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


crypto.privateDecrypt() ใช้สำหรับถอดรหัสเนื้อหาข้อมูลที่กำหนดโดยใช้คีย์ส่วนตัวที่ส่งผ่านในพารามิเตอร์ที่เข้ารหัสก่อนหน้านี้โดยใช้กุญแจสาธารณะที่สอดคล้องกับวิธี crypto.publicEncrypt()

ไวยากรณ์

crypto.privateDecrypt(privateKey, บัฟเฟอร์)

พารามิเตอร์

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

  • คีย์ – สามารถมีข้อมูลประเภทต่อไปนี้ได้ 5 ประเภท – Object, String, Buffer หรือ KeyObject

    • oaepHash – ช่องนี้มีฟังก์ชันแฮชที่จะใช้สำหรับ OAEP padding และ MGF1 ค่าเริ่มต้นคือ:'sha1'

    • oaepLabel – ฟิลด์นี้มีค่าสำหรับการเติม OAEP ไม่มีการใช้ฉลากหากไม่มีการระบุ

    • การเติม – เป็นค่าทางเลือกที่กำหนดไว้ใน crypto.constants

  • บัฟเฟอร์ – ช่องนี้มีเนื้อหาข้อมูลที่จะถอดรหัส ประเภทบัฟเฟอร์ที่เป็นไปได้ ได้แก่ string, TypedArray, Buffer, ArrayBuffer, DataView

ตัวอย่าง

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

โหนด privateDecrypt.js

privateDecrypt.js

// โปรแกรม Node.js เพื่อแสดงการไหลของวิธี crypto.privateDecrypt() // การนำเข้า crypto และ fs moduleconst crypto =require('crypto');const fs =require("fs");// กำลังอ่าน คีย์สาธารณะ.//คุณสามารถสร้างคีย์เหล่านี้ได้โดยใช้ generateKeyPair()publicKey =fs.readFileSync('public_key').toString();// ส่งข้อความด้านล่างเพื่อเข้ารหัส buf =Buffer.from('Hello TutorialsPoint', ' utf8');// การเข้ารหัส textsecretData ด้านบน =crypto.publicEncrypt (publicKey, buf); // การพิมพ์ textconsole.log ที่เข้ารหัส (secretData); // การอ่าน Private keyprivateKey =fs.readFileSync('private_key').toString( );// การถอดรหัส textorigData ที่เข้ารหัส =crypto.privateDecrypt(privateKey, secretData);console.log();// การพิมพ์ข้อความต้นฉบับเป็น bufferconsole.log(origData);

ผลลัพธ์

C:\home\node>> โหนด privateDecrypt.js<บัฟเฟอร์ 15 4b 51 02 e7 1c ec 11 20 55 ee 92 b2 18 7b ce f1 e1 97 bd b7 0d 5421 18 ea 0c e7 cd 51 36 f5 13 df fb 41 c1 63 bb ac ee 94 12 df f6 d6 04 b1 9c11 ...><บัฟเฟอร์ 48 65 6c 6c 6f 20 54 75 74 6f 72 69 61 6c 73 50 6f 69 6e 74>

ตัวอย่าง

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

// โปรแกรม Node.js เพื่อแสดงการไหลของวิธี crypto.privateDecrypt() // การนำเข้า crypto และ fs moduleconst crypto =require('crypto');const fs =require("fs");// การสร้างคีย์ ไฟล์โดยใช้ generateKeyPairSync () methodfunction generateKeyFiles () { const keyPair =crypto.generateKeyPairSync ('rsa', { โมดูลัสLength:530, publicKeyEncoding:{ ประเภท:'spki', รูปแบบ:'pem' }, privateKeyEncoding:{ ประเภท:'pkcs8' , รูปแบบ:'pem', รหัสลับ:'aes-256-cbc', ข้อความรหัสผ่าน:'' } }); // เขียนคีย์ในไฟล์ต่อไปนี้ fs.writeFileSync("public_key", keyPair.publicKey); fs.writeFileSync ("private_key", keyPair.privateKey);}// Calling Generate keys methodgenerateKeyFiles ();// การเข้ารหัสฟังก์ชันสตริงที่วางไว้ encryptString (ข้อความธรรมดา, publicKeyFile) { const publicKey =fs.readFileSync (publicKeyFile, "utf8"); // การเข้ารหัสข้อมูลโดยใช้วิธี publicEncrypt() และกุญแจสาธารณะ const เข้ารหัส =crypto.publicEncrypt (publicKey, Buffer.from (ข้อความธรรมดา)); ส่งคืน encrypted.toString ("base64");} // ถอดรหัสสตริงที่ส่งผ่านด้วยฟังก์ชันคีย์ส่วนตัว decryptString (ciphertext, privateKeyFile) { const privateKey =fs.readFileSync (privateKeyFile, "utf8"); // ถอดรหัสข้อมูลโดยใช้วิธี privateDecrypt () // และคีย์ส่วนตัวที่เกี่ยวข้อง const decrypted =crypto.privateDecrypt ({ คีย์:privateKey, วลีรหัสผ่าน:'', }, Buffer.from(ciphertext, "base64") ); return decrypted.toString("utf8");}// ข้อมูลต่อไปนี้จะถูกเข้ารหัสและถอดรหัสconst plainText ="TutorialsPoint!";// การเรียกใช้เมธอดด้านล่างเพื่อเข้ารหัส stringconst encrypted =encryptString(plainText, "./public_key");/ / การพิมพ์ textconsole.log("Plaintext:", plainText);console.log();// การพิมพ์ textconsole.log ที่เข้ารหัสแล้ว ("Encrypted Text:", encrypted);console.log();// การพิมพ์ textconsole.log ที่ถอดรหัสแล้ว ("ข้อความที่ถอดรหัส:", decryptString (เข้ารหัสแล้ว "private_key"));

ผลลัพธ์

C:\home\node>> node privateDecrypt.jsPlaintext:TutorialsPoint!Encrypted Text:AbSrqG4qFBG1q9KUBt8ddJxk9uNanOHXqY19N0mNHx0fm4M119dZVhcNrAvM8UaIRJvh7AsdPApreed