Función Node.js crypto.sign()

fromhe crypto.sign() se utiliza para crear la firma de los datos. 

Sintaxis: 

crypto.sign(algorithm, data, key)

Parámetros: Esta función acepta los siguientes parámetros:

  • algoritmo: Es un valor de tipo string. Se puede crear una firma aplicando el nombre de algoritmos de firma, como ‘ SHA256 ‘, en lugar de un algoritmo de resumen.
  • data: debe ser un objeto de buffer, TypedArray o DataView . Lea el método Buffer.from() para convertir una string en Buffer.
  • clave: debe ser la clave privada de keyObject . Si no tiene ninguna clave privada, puede crear una clave privada y pública utilizando el método crypto.generateKeyPairSync().

Instalación del módulo: Instale el módulo requerido usando el siguiente comando:

npm install crypto

Valor devuelto: Devuelve el valor de la firma basado en el algoritmo, los datos y la clave especificados. El valor devuelto es Buffer por defecto, pero es posible convertirlo en otro formato usando el método buffer.toString() .

Ejemplo 1: Firmar una string.

signature.js

const crypto = require('crypto');
const buffer = require('buffer');
  
// Create a private key
const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 2048,
});
  
// Convert string to buffer 
const data = Buffer.from("I Love GeeksForGeeks");
  
// Sign the data and returned signature in buffer 
const sign = crypto.sign("SHA256", data , privateKey);
  
// Convert returned buffer to base64
const signature = sign.toString('base64');
  
// Printing the signature 
console.log(`Signature:\n\n ${signature}`);

Ejecute el archivo signature.js con el siguiente comando:

node signature.js

Producción:

Ejemplo 2: Firmar un archivo.

signature.js

const crypto = require('crypto');
const buffer = require('buffer');
const fs = require('fs');
  
// Create a private key
const { privateKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 2048,
});
  
console.log("Reading File...\n");
// Reading file
const text = fs.readFileSync('./doc.txt');
console.log(`File content: ${text}`);
  
// Convert string to buffer 
const data = Buffer.from(text);
  
// Sign the data and returned signature in buffer 
const sign = crypto.sign("SHA256", data , privateKey);
  
// Convert returned buffer to base64
const signature = sign.toString('base64');
  
// Printing the signature 
console.log(`Signature:\n\n ${signature}`);

Ejecute el archivo signature.js con el siguiente comando:

node signature.js

Producción:

Ejemplo 3: firmar datos JSON.

signature.js

const crypto = require('crypto');
const buffer = require('buffer');
  
// Create a private key
const { privateKey } = crypto.generateKeyPairSync('rsa', {
  modulusLength: 2048,
});
  
// JSON object
const person = {
    name: "Raktim Banerjee",
    email:"example@gmail.com",
    address: "4 main street"
}
  
// Convert Stringified json data to buffer  
const data = Buffer.from( JSON.stringify(person) );
  
// Sign the data and returned signature in buffer 
const sign = crypto.sign("SHA256", data , privateKey);
  
// Convert returned buffer to base64
const signature = sign.toString('base64');
  
// Printing the signature 
console.log(`Signature:\n\n ${signature}`);

Ejecute el archivo signature.js con el siguiente comando:

node signature.js

Producción:

Referencia: https://nodejs.org/api/crypto.html#crypto_crypto_sign_algorithm_data_key_callback

Publicación traducida automáticamente

Artículo escrito por braktim99 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *