Computer >> Máy Tính >  >> Lập trình >> Javascript

Phương thức crypto.privateDecrypt () trong Node.js

Crypto.privateDecrypt () được sử dụng để giải mã nội dung dữ liệu đã cho bằng cách sử dụng khóa cá nhân được chuyển vào tham số đã được mã hóa trước đó bằng khóa công khai tương ứng với phương thức crypto.publicEncrypt ().

Cú pháp

 crypto.privateDecrypt (privateKey, bộ đệm) 

Tham số

Các thông số trên được mô tả như bên dưới -

  • phím - Nó có thể chứa 5 loại dữ liệu dưới đây thuộc loại sau - Đối tượng, Chuỗi, Bộ đệm hoặc KeyObject.

    • oaepHash - Trường này chứa hàm băm được sử dụng cho phần đệm OAEP và MGF1. Giá trị mặc định là:'sha1'.

    • oaepLabel - Trường này chứa giá trị cho phần đệm OAEP. Không có lable nào được sử dụng nếu không được chỉ định.

    • đệm - Đây là một giá trị tùy chọn được xác định trong crypto.constants.

  • đệm - Trường này chứa nội dung dữ liệu cần giải mã. Các loại bộ đệm có thể có là:string, TypedArray, Buffer, ArrayBuffer, DataView.

Ví dụ

Tạo một tệp có tên - privateDecrypt.js và sao chép đoạn mã dưới đây. Sau khi tạo tệp, sử dụng lệnh sau để chạy mã này như được hiển thị trong ví dụ bên dưới -

nút
 privateDecrypt.js 

privateDecrypt.js

 // Chương trình Node.js để chứng minh quy trình của phương thức crypto.privateDecrypt () // Nhập tiền điện tử và fs moduleconst crypto =request ('crypto'); const fs =request ("fs"); // Đọc Khóa công khai.//Bạn có thể tạo các khóa này bằng cách sử dụng createKeyPair () publicKey =fs.readFileSync ('public_key'). ToString (); // Truyền văn bản dưới đây để được mã hóavar buf =Buffer.from ('Hello TutorialsPoint', ' utf8 '); // Mã hóa các văn bản trên ); // Giải mã textorigData được mã hóa =crypto.privateDecrypt (privateKey, secretData); console.log (); // In văn bản gốc dưới dạng bufferconsole.log (origData); 

Đầu ra

 C:\ home \ node>> node privateDecrypt.js   

Ví dụ

Hãy xem thêm một ví dụ.

 // Chương trình Node.js để chứng minh quy trình của phương thức crypto.privateDecrypt () // Nhập tiền điện tử và fs moduleconst crypto =request ('crypto'); const fs =request ("fs"); // Tạo khóa các tệp sử dụng hàm method createKeyPairSync () createKeyFiles () {const keyPair =crypto.generateKeyPairSync ('rsa', {modulusLength:530, publicKeyEncoding:{type:'spki', format:'pem'}, privateKeyEncoding:{type:'pkcs8' , định dạng:'pem', mật mã:'aes-256-cbc', cụm mật khẩu:''}}); // Ghi các khóa trong các tệp sau fs.writeFileSync ("public_key", keyPair.publicKey); fs.writeFileSync ("private_key", keyPair.privateKey);} // Gọi phương thức Tạo khóa tạo khóa () // Mã hóa dữ liệu bằng phương thức publicEncrypt () và khóa công khai const mã hóa =crypto.publicEncrypt (publicKey, Buffer.from (plaintext)); trả về mã hóa.toString ("base64");} // Giải mã chuỗi đã truyền bằng private Key Chức năng decryptString (ciphertext, privateKeyFile) {const privateKey =fs.readFileSync (privateKeyFile, "utf8"); // Giải mã dữ liệu bằng phương thức privateDecrypt () // và khóa riêng tương ứng const decrypted =crypto.privateDecrypt ({key:privateKey, passphrase:'',}, Buffer.from (ciphertext, "base64")); return decrypted.toString ("utf8");} // Dữ liệu sau sẽ được mã hóa và giải mã. / In textconsole.log thuần túy ("Plaintext:", fineText); console.log (); // In textconsole.log được mã hóa ("Văn bản được mã hóa:", đã được mã hóa); console.log (); // In decryzed textconsole.log ("Văn bản được giải mã:", decryptString (được mã hóa, "private_key")); 

Đầu ra

 C:\ home \ node>> node privateDecrypt.jsPlaintext:TutorialsPoint! Văn bản được mã hóa:AbSrqG4qFBG1q9KUBt8ddJxk9uNanOHXqY19N0mNHx0fm4M119dZVhcNrJPAvM8UaIRJ25Kv7