类:Hash
¥Class: Hash
-
¥Extends: <stream.Transform>
Hash
类是用于创建数据的哈希摘要的实用工具。它可以通过以下两种方式之一使用:
¥The Hash
class is a utility for creating hash digests of data. It can be
used in one of two ways:
-
作为可读可写的 流,写入数据以在可读端生成计算的哈希摘要,或者
¥As a stream that is both readable and writable, where data is written to produce a computed hash digest on the readable side, or
-
使用
hash.update()
和hash.digest()
方法生成计算的哈希。¥Using the
hash.update()
andhash.digest()
methods to produce the computed hash.
crypto.createHash()
方法用于创建 Hash
实例。Hash
对象不能直接使用 new
关键字创建。
¥The crypto.createHash()
method is used to create Hash
instances. Hash
objects are not to be created directly using the new
keyword.
示例:使用 Hash
对象作为流:
¥Example: Using Hash
objects as streams:
const {
createHash
} = await import('node:crypto');
const hash = createHash('sha256');
hash.on('readable', () => {
// Only one element is going to be produced by the
// hash stream.
const data = hash.read();
if (data) {
console.log(data.toString('hex'));
// Prints:
// 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
}
});
hash.write('some data to hash');
hash.end();
const {
createHash,
} = require('node:crypto');
const hash = createHash('sha256');
hash.on('readable', () => {
// Only one element is going to be produced by the
// hash stream.
const data = hash.read();
if (data) {
console.log(data.toString('hex'));
// Prints:
// 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
}
});
hash.write('some data to hash');
hash.end();
示例:使用 Hash
和管道流:
¥Example: Using Hash
and piped streams:
import { createReadStream } from 'node:fs';
import { stdout } from 'node:process';
const { createHash } = await import('node:crypto');
const hash = createHash('sha256');
const input = createReadStream('test.js');
input.pipe(hash).setEncoding('hex').pipe(stdout);
const { createReadStream } = require('node:fs');
const { createHash } = require('node:crypto');
const { stdout } = require('node:process');
const hash = createHash('sha256');
const input = createReadStream('test.js');
input.pipe(hash).setEncoding('hex').pipe(stdout);
示例:使用 hash.update()
和 hash.digest()
方法:
¥Example: Using the hash.update()
and hash.digest()
methods:
const {
createHash
} = await import('node:crypto');
const hash = createHash('sha256');
hash.update('some data to hash');
console.log(hash.digest('hex'));
// Prints:
// 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50
const {
createHash,
} = require('node:crypto');
const hash = createHash('sha256');
hash.update('some data to hash');
console.log(hash.digest('hex'));
// Prints:
// 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50