crypto.createHash(algorithm[, options])
algorithm
<string>options
<Object>stream.transform
选项- 返回: <Hash>
创建并返回 Hash
对象,该对象可用于使用给定的 algorithm
生成哈希摘要。
可选的 options
参数控制流的行为。
对于 XOF 哈希函数(例如 'shake256'
),可以使用 outputLength
选项指定所需的输出长度(以字节为单位)。
algorithm
取决于平台上 OpenSSL 版本支持的可用算法。
例如 'sha256'
、'sha512'
等。
在 OpenSSL 的最新版本中,openssl list -digest-algorithms
(在 OpenSSL 的旧版本中为 openssl list-message-digest-algorithms
)将显示可用的摘要算法。
示例:生成文件的 sha256 总和
const filename = process.argv[2];
const crypto = require('crypto');
const fs = require('fs');
const hash = crypto.createHash('sha256');
const input = fs.createReadStream(filename);
input.on('readable', () => {
// 哈希流只生成
// 一个元素。
const data = input.read();
if (data)
hash.update(data);
else {
console.log(`${hash.digest('hex')} ${filename}`);
}
});
algorithm
<string>options
<Object>stream.transform
options- Returns: <Hash>
Creates and returns a Hash
object that can be used to generate hash digests
using the given algorithm
. Optional options
argument controls stream
behavior. For XOF hash functions such as 'shake256'
, the outputLength
option
can be used to specify the desired output length in bytes.
The algorithm
is dependent on the available algorithms supported by the
version of OpenSSL on the platform. Examples are 'sha256'
, 'sha512'
, etc.
On recent releases of OpenSSL, openssl list -digest-algorithms
(openssl list-message-digest-algorithms
for older versions of OpenSSL) will
display the available digest algorithms.
Example: generating the sha256 sum of a file
const filename = process.argv[2];
const crypto = require('crypto');
const fs = require('fs');
const hash = crypto.createHash('sha256');
const input = fs.createReadStream(filename);
input.on('readable', () => {
// Only one element is going to be produced by the
// hash stream.
const data = input.read();
if (data)
hash.update(data);
else {
console.log(`${hash.digest('hex')} ${filename}`);
}
});