Node.js 中的 crypto.createHash() 方法

该方法将创建一个哈希对象,然后返回它。该哈希对象可用于通过使用给定算法生成哈希摘要。可选选项用于控制流行为。对于 XOF 和“shake256”等一些散列函数,输出长度用于指定所需的输出长度(以字节为单位)。crypto.createHash()

语法

crypto.createHash(algorithm, [options])

参数

上述参数描述如下 -

  • algorithm  – 该算法用于生成哈希摘要。输入类型是字符串。

  • options  – 这些是可用于控制流行为的可选参数。

示例

创建一个具有名称的文件 -createHash.js并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 -

node createHash.js

创建哈希.js

// crypto.createHash() 演示示例

// 导入加密模块
const crypto = require('crypto');

// 定义密钥
const secret = 'nhooo';

// 使用 secret 初始化 createHash 方法
const hashValue = crypto.createHash('sha256', secret)

   // 要编码的数据
   .update('Welcome to nhooo !')

   // 定义编码类型
   .digest('hex');
// 打印输出
console.log("获得的哈希为: ", hashValue);
输出结果
C:\home\node>> node createHash.js
获得的哈希为:
5f55ecb1ca233d41dffb6fd9e307d37b9eb4dad472a9e7767e8727132b784461

示例

让我们再看一个例子。

// crypto.createHash() 演示示例

// 导入加密模块
const crypto = require('crypto');
const fs = require('fs');

// 获取当前文件路径
const filename = process.argv[1];

// 使用秘密为当前路径创建哈希
const hash = crypto.createHash('sha256', "nhooo");

const input = fs.createReadStream(filename);
input.on('readable', () => {
   // 读取散列流产生的单个元素。
   const val = input.read();
   if (val)
      hash.update(val);
   else {
      console.log(`${hash.digest('hex')} ${filename}`);
   }
});
输出结果
C:\home\node>> node createHash.js
d1bd739234aa1ede5acfaccee657296ead1879644764f45be17466a9192c3967
/home/node/test/createHash.js