• 继承自: {stream.Transform}

    Hash 类是一个实用工具,用于创建数据的哈希摘要。 它可以通过以下两种方式之一使用:

    • 作为可读写的[流][stream],其中写入数据以在可读侧生成计算后的哈希摘要。
    • 使用 [hash.update()] 和 [hash.digest()] 方法生成计算后的哈希。

    [crypto.createHash()] 方法用于创建 Hash 实例。 不能使用 new 关键字直接地创建 Hash 对象。

    示例,使用 Hash 对象作为流:

    1. const crypto = require('crypto');
    2. const hash = crypto.createHash('sha256');
    3. hash.on('readable', () => {
    4. // 哈希流只会生成一个元素。
    5. const data = hash.read();
    6. if (data) {
    7. console.log(data.toString('hex'));
    8. // 打印:
    9. // 164345eba9bccbafb94b27b8299d49cc2d80627fc9995b03230965e6d8bcbf56
    10. }
    11. });
    12. hash.write('要创建哈希摘要的数据');
    13. hash.end();

    示例,使用 Hash 和管道流:

    1. const crypto = require('crypto');
    2. const fs = require('fs');
    3. const hash = crypto.createHash('sha256');
    4. const input = fs.createReadStream('要创建哈希摘要的数据.txt');
    5. input.pipe(hash).setEncoding('hex').pipe(process.stdout);

    示例,使用 [hash.update()] 和 [hash.digest()] 方法:

    1. const crypto = require('crypto');
    2. const hash = crypto.createHash('sha256');
    3. hash.update('要创建哈希摘要的数据');
    4. console.log(hash.digest('hex'));
    5. // 打印:
    6. // 164345eba9bccbafb94b27b8299d49cc2d80627fc9995b03230965e6d8bcbf56