Node.js crypto.createHash() 方法
crypto.createHash() 方法用于创建一个Hash对象,该对象可用于通过使用所述算法创建散列摘要。
句法:
crypto.createHash( algorithm, options )
参数:此方法接受前面提到的两个参数,如下所述:
- 算法:取决于平台上OpenSSL版本偏好的可访问算法。它返回字符串。示例是sha256 、 sha512等。
- 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