El método crypto.privateEncrypt() se utiliza para cifrar el contenido declarado del búfer con el parámetro ‘privateKey’.
Sintaxis:
crypto.privateEncrypt( privateKey, buffer )
Parámetros: Este método acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- privateKey: puede contener datos de tipo objeto, string, búfer o KeyObject.
- clave: Es una clave privada codificada ‘PEM’. Es de tipo string, Buffer y KeyObject .
- frase de contraseña: es una frase de contraseña opcional para la clave privada que es una string o un búfer.
- relleno Es un valor de relleno opcional que se define en crypto.constants, que puede ser crypto.constants.RSA_NO_PADDING o crypto.constants.RSA_PKCS1_PADDING. Es de tipo crypto.constants .
- buffer: Contiene datos de tipo Buffer, TypedArray o DataView.
Valor de retorno: Devuelve un nuevo Buffer con el contenido encriptado.
El siguiente ejemplo ilustra el uso del método crypto.privateEncrypt() en Node.js:
Ejemplo 1:
// Node.js program to demonstrate the // crypto.privateEncrypt() method // Including crypto and fs module const crypto = require('crypto'); const fs = require("fs"); // Using a function generateKeyFiles function generateKeyFiles() { const keyPair = crypto.generateKeyPairSync('rsa', { modulusLength: 520, publicKeyEncoding: { type: 'spki', format: 'pem' }, privateKeyEncoding: { type: 'pkcs8', format: 'pem', cipher: 'aes-256-cbc', passphrase: '' } }); // Creating private key file fs.writeFileSync("private_key", keyPair.privateKey); } // Generate keys generateKeyFiles(); // Creating a function to encrypt string function encryptString (plaintext, privateKeyFile) { const privateKey = fs.readFileSync(privateKeyFile, "utf8"); // privateEncrypt() method with its parameters const encrypted = crypto.privateEncrypt( privateKey, Buffer.from(plaintext)); return encrypted.toString("base64"); } // Defining a text to be encrypted const plainText = "GfG"; // Defining encrypted text const encrypted = encryptString(plainText, "./private_key"); // Prints plain text console.log("Plaintext:", plainText); // Prints encrypted text console.log("Encrypted: ", encrypted);
Producción:
Plaintext: GfG Encrypted: c60eR17GTQFkTI1ipTq5qFbYS58lIQqpDiou2UlYeOUE+u7agbtHvvwKaBpzBx4SvTCh5abpaqmyXCyGcUpGc7s=
Ejemplo 2:
// Node.js program to demonstrate the // crypto.privateEncrypt() method // Including crypto and fs module const crypto = require('crypto'); const fs = require("fs"); // Using a function generateKeyFiles function generateKeyFiles() { const keyPair = crypto.generateKeyPairSync('rsa', { modulusLength: 520, publicKeyEncoding: { type: 'spki', format: 'pem' }, privateKeyEncoding: { type: 'pkcs8', format: 'pem', cipher: 'aes-256-cbc', passphrase: '' } }); // Creating private key file fs.writeFileSync("private_key", keyPair.privateKey); } // Generate keys generateKeyFiles(); // Creating a function to encrypt string function encryptString (plaintext, privateKeyFile) { const privateKey = fs.readFileSync(privateKeyFile, "utf8"); // privateEncrypt() method with its parameters const encrypted = crypto.privateEncrypt( privateKey, Buffer.from(plaintext)); // Returns buffer as its not encoded return encrypted; } // Defining a text to be encrypted const plainText = "GfG"; // Defining encrypted text const encrypted = encryptString(plainText, "./private_key"); // Prints plain text console.log("Plaintext:", plainText); // Prints encrypted text console.log("Encrypted buffer: ", encrypted);
Producción:
Plaintext: GfG Encrypted buffer: <Buffer 14 e5 84 05 2f b5 59 64 22 d2 19 99 f9 66 e5 18 50 76 27 df 0b e6 9f 50 1d a2 51 6a 93 21 04 7b 8f 50 ba 11 82 fd 3c 6e c0 81 be 58 f9 d6 a6 c7 19 da ... >
Referencia: https://nodejs.org/api/crypto.html#crypto_crypto_privateencrypt_privatekey_buffer
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA