📜  Node.js crypto.createHash() 方法

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

Node.js crypto.createHash() 方法

crypto.createHash() 方法用于创建一个Hash对象,该对象可用于通过使用所述算法创建散列摘要。

句法:

crypto.createHash( algorithm, options )

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

  • 算法:取决于平台上OpenSSL版本偏好的可访问算法。它返回字符串。示例是sha256sha512等。
  • options:可选参数,用于控制流的行为。它返回一个对象。此外,对于像“shake256”这样的XOF哈希函数,选项outputLength可用于确定所需的输出长度(以字节为单位)。

返回类型:返回Hash对象。

下面的例子说明了在 Node.js 中crypto.createHash() 方法的使用:

示例 1:

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

输出:

df287dfc1406ed2b692e1c2c783bb5cec97eac53151ee1d9810397aa0afa0d89

示例 2:

// Node.js program to demonstrate the     
// crypto.createHash() method
  
// Defining filename
const filename = process.argv[2];
  
// Includes crypto and  fs module
const crypto = require('crypto');
const fs = require('fs');
  
// Creating Hash 
const hash = crypto.createHash('sha256', 'Geeksforgeeks');
  
// Creating read stream
const input = fs.createReadStream(filename);
  
input.on('readable', () => {
   
 // Calling read method to read data
  const data = input.read();
  if (data)
      
    // Updating
    hash.update(data);
  else
   {
    // Encoding and displaying filename
    console.log(`${hash.digest('base64')} ${filename}`);
  }
});
console.log("Program done!");

输出:

Program done!
n95mt3468ZzAIwu/bbNU7dej6CoFkDRcNaJo7rGpLF4= index.js

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