📜  Node.js crypto.createHmac() 方法

📅  最后修改于: 2022-05-13 01:56:43.439000             🧑  作者: Mango

Node.js crypto.createHmac() 方法

crypto.createHmac() 方法用于创建使用所述“算法”和“密钥”的 Hmac 对象。

句法:

crypto.createHmac( algorithm, key, options )

参数:此方法接受前面提到的三个参数,如下所述:

  • 算法:取决于平台上OpenSSL版本偏好的可访问算法。它返回字符串。示例是sha256sha512等。
  • 密钥:它是用于创建加密HMAC哈希的 HMAC 密钥。它返回字符串BufferTypedArrayDataViewKeyObject 。如果它是 KeyObject,那么它的类型必须是秘密的。
  • options:可选参数,用于控制流的行为。它返回一个对象。

返回类型:返回Hmac对象。

下面的示例说明了在 Node.js 中使用crypto.createHmac() 方法

示例 1:

// Node.js program to demonstrate the     
// crypto.createHmac() method
  
// Includes crypto module
const crypto = require('crypto');
  
// Defining key
const secret = 'GfG';
  
// Calling createHmac method
const hash = crypto.createHmac('sha256', secret)
                     
                   // updating data
                   .update('GeeksforGeeks')
  
                   // Encoding to be used
                   .digest('hex');
  
// Displays output
console.log(hash);

输出:

a08116905e92633e4f30eefd1276206b259305c8783642fc5b7f51c089187939

示例 2:

// Node.js program to demonstrate the     
// crypto.createHmac() method
    
// Defining myfile
const myfile = process.argv[1];
    
// Includes crypto and  fs module
const crypto = require('crypto');
const fs = require('fs');
    
// Creating Hmac 
const creathmac = crypto.createHmac('sha1', 'CS-Portal!');
    
// Creating read stream
const readfile = fs.createReadStream(myfile);
    
readfile.on('readable', () => {
     
 // Calling read method to read data
  const data = readfile.read();
  if (data)
        
    // Updating
    creathmac.update(data);
  else
   {
    // Encoding and displaying filename
    console.log("The hmac object returns:", 
    `${creathmac.digest('hex')} ${myfile}`);
  }
});
console.log("Program done!");
console.log();

输出:

Program done!
The hmac object returns: 4605d44703c2620fc2574c9a9216bd3267457324 /run_dir/interp.js

参考: https://nodejs.org/api/crypto.html#crypto_crypto_createhmac_algorithm_key_options