类: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:
// 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50const {
createHash,
} = require('node:crypto');
const hash = createHash('sha256');
hash.update('some data to hash');
console.log(hash.digest('hex'));
// Prints:
// 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50