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

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

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

Cú pháp

 crypto.publicEncrypt (khóa, 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.

    • phím - Trường này chứa khóa công khai hoặc khóa riêng được mã hóa PEM. Nó có thể là loại 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.

    • cụm mật khẩu - Đây là cụm mật khẩu tùy chọn cho khóa cá nhân.

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

    • mã hóa - Đây là kiểu mã hóa cần được sử dụng khi giá trị bộ đệm, khóa, oaepLabel hoặc cụm mật khẩu là chuỗi.

  • đệm - Trường này chứa nội dung dữ liệu cần mã hóa. 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 - publicEncrypt.js và sao chép đoạn mã bên dưới. 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 publicEncrypt.js 

publicEncrypt.js

 // Chương trình Node.js để chứng minh quy trình của phương thức crypto.publicEncrypt () // Nhập tiền điện tử và fs moduleconst crypto =request ('crypto'); const fs =request ("fs"); // Tạo bên dưới hàm tạo khóa chức năng createKeyFiles () {const keyPair =crypto.generateKeyPairSync ('rsa', {modulusLength:520, publicKeyEncoding:{type:'spki', format:'pem'}, privateKeyEncoding:{type:'pkcs8', format :'pem', cipher:'aes-256-cbc', mật khẩu:''}}); // Tạo tệp khóa công khai với tên bên dưới là fs.writeFileSync ("public_key", keyPair.publicKey);} // Tạo khóa tạo keygenerateKeyFiles (); // Mã hóa chuỗi bằng cách sử dụng chức năng dưới đây encodeptString (plaintext, publicKeyFile) {const publicKey =fs.readFileSync (publicKeyFile, "utf8"); // Gọi publicEncrypt () với các tham số dưới đây const encised =crypto.publicEncrypt (publicKey, Buffer.from (plaintext)); trả về mã hóa.toString ("base64");} // Văn bản sẽ được mã hóa ("Plaintext:", fineText); // In textconsole.log được mã hóa ("Encrypted:", đã mã hóa); 

Đầu ra

 C:\ home \ node>> node publicEncrypt.jsPlaintext:TutorialsPointEncrypted:kgnqPxy / n34z + / 5wd7MZiMAL5LrQisTLfZiWoSChXSvxgtifMQaZ56cbF + twA55olM0rHQfnuV6 

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.publicEncrypt () // Nhập tiền điện tử và fs moduleconst crypto =request ('crypto'); const fs =request ("fs"); // Tạo bên dưới hàm tạo khóa chức năng createKeyFiles () {const keyPair =crypto.generateKeyPairSync ('rsa', {modulusLength:520, publicKeyEncoding:{type:'spki', format:'pem'}, privateKeyEncoding:{type:'pkcs8', format :'pem', cipher:'aes-256-cbc', mật khẩu:''}}); // Tạo tệp khóa công khai fs.writeFileSync ("public_key", keyPair.publicKey);} // Tạo khóagenerateKeyFiles (); // Mã hóa chuỗi bằng cách sử dụng chức năng bên dưới mã hóaString (plaintext, publicKeyFile) {const publicKey =fs.readFileSync ( publicKeyFile, "utf8"); // Gọi publicEncrypt () với các tham số dưới đây const encised =crypto.publicEncrypt (publicKey, Buffer.from (plaintext)); trả về đã được mã hóa;} // Văn bản sẽ được mã hóa. , trơnText); // In mã hóa bufferconsole.log ("Bộ đệm:", được mã hóa); 

Đầu ra

 C:\ home \ node>> node publicEncrypt.jsPlaintext:Hello TutorialsPoint! Buffer: