Método Node.js hmac.digest()

El método hmac.digest() es una interfaz de programación de aplicaciones incorporada de clase hmac dentro del módulo criptográfico que se utiliza para devolver el valor hash hmac de los datos ingresados.  

Sintaxis:

hmac.digest([encoding])

Parámetro: este método toma la codificación como parámetro, que es un parámetro opcional.

Valor de retorno: este método calcula el resumen de hmac de todos los datos que pasan usando hmac.update() . Si no se proporciona codificación , se devuelve Buffer ; de lo contrario, se devuelve String

Nota: hmac.digest () realiza operaciones finales. Entonces, el objeto hmac se vuelve inutilizable después de llamar a hmac.digest(). Llamar a múltiples hmac.digest() causando un error. 

Configuración del proyecto: cree un nuevo proyecto NodeJS y asígnele el nombre hmac

mkdir hmac && cd hmac
npm init -y
npm install crypto

Ahora cree un archivo .js en el directorio raíz de su proyecto y asígnele el nombre index.js

Ejemplo 1: 

index.js

// Node.js program to demonstrate the
// crypto hmac.digest() method
  
// Importing crypto module
const { createHmac } = require('crypto')
  
// Creating and initializing algorithm
// and password
const algo = 'sha256'
const secret = 'GFG Secret Key'
  
// Create an HMAC instance
const hmac = createHmac(algo, secret)
  
// Update the internal state of
// the hmac object
hmac.update('GeeksForGeeks')
  
// Perform the final operations
// No encoding provided
// Return calculated hmac hash
// value as Buffer
let result = hmac.digest()
  
// Check whether returns value is
// instance of buffer or not
console.log(Buffer.isBuffer(result)) // true
  
// Convert buffer to string
result = result.toString('hex')
  
// Print the result
console.log(`HMAC hash: ${result}`)

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

verdadero
hash HMAC: c8ae3e09855ae7ac3405ad60d93758edc0ccebc1cf5c529bfb5d058674695c53

Ejemplo 2:

index.js

// Node.js program to demonstrate the    
// crypto hmac.digest() method
  
// Defining myfile
const myfile = process.argv[2];
  
// Includes crypto and fs module
const crypto = require('crypto');
const fs = require('fs');
  
// Creating and initializing 
// algorithm and password
const algo = 'sha256'
const secret = 'GFG Secret Key'
  
// Creating Hmac
const hmac = crypto.createHmac(algo, secret);
  
// Creating read stream
const readfile = fs.createReadStream(myfile);
  
readfile.on('readable', () => {
  
    // Calling read method to read data
    const data = readfile.read();
  
    if (data) {
  
        // Updating
        hmac.update(data);
    } else {
  
        // Perform the final operations 
        // Encoding provided
        // Return hmac hash value
        const result = hmac.digest('base64')
  
        // Display result
        console.log(
    `HMAC hash value of ${myfile}: ${result}`);
    }
});

Ejecute el archivo index.js con el siguiente comando:

node index.js package.json

Producción:

HMAC hash value of package.json: 
L5XUUEmtxgmSRyg12gQuKu2lmTJWr8hPYe7vimS5Moc=

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

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 *