Node.js crypto.createHmac() 方法

2025年2月15日 | 阅读 4 分钟

在本文中,我们将讨论 Node.js 的 crypto.createHmac() 方法,包括其语法、参数和示例。

什么是 Node.js crypto.creatrHmac() 方法?

Node.js 中的 crypto. createHmac() 方法是 HMAC(基于哈希的消息认证码)对象的缩写。HMAC 是基于哈希的消息认证码的缩写,它可以被描述为一种特殊的加密哈希函数构造,当使用加密哈希函数和认证的秘密加密密钥计算所述值时。它是 crypto 模块中的一个方法,常用于验证过程以确保数据的有效性。

理解 HMAC

HMAC 涉及使用 SHA-256 等加密哈希函数和一个秘密密钥来生成哈希。HMAC 有不同的应用,但主要的应用是验证消息的完整性。例如,即使攻击者可以截获消息和哈希值,他也无法更改消息,因为如果使用相同的秘密密钥重写消息,其哈希值将与原始值不同。

语法

它具有以下语法:

参数

此方法接受上面提到并将在下面描述的三个参数

  • 算法:它们取决于与 OpenSSL 版本兼容的现有算法。
  • 密钥:它是用于构建 HMAC 哈希加密 的 HMAC 密钥。之后,它将返回字符串、Buffer、TypedArray、DataView 或 KeyObject。如果它是 KeyObject,则其类型必须是 secret。
  • 选项:这是一个可选参数,用于控制流。它返回一个对象。

返回值

它返回 Hmac 对象作为结果。以下是 Node.js 中使用 crypto.createHmac() 方法的示例

示例 1

输出

 
9ac3570c1fe2c9679abf649bd7f6dc15a8d16fbb1c1c86d0fbb6a3f40a471e94   

说明

  • 提供的 Node.js 代码解释了如何使用 'crypto' 模块。createHmac() 方法,用于使用 SHA-256 HASH 算法生成 HMAC。首先,导入 crypto 模块,作为其内在的加密操作的基本用途。
  • 然后,派生出密钥 JAVA,需要确保 HMAC 的安全性。接下来,调用 createHmac 函数,并提供 'sha256' 和密钥参数来生成 HMAC。之后,数据字符串 'Programming' 被作为参数传递给 HMAC 对象的 update 方法。
  • 最后,有一个带有 'hex' 参数的 digest 方法来完成 HMAC 计算,并以十六进制表示形式获取字符串。之后,将此十六进制 HMAC digest 写入控制台。它还确保了真实性。因此,其他人可以用相同的秘密密钥识别它。

示例 2

输出

 
The return value of hmac: a39ec9a5634c3e3c9bb42d87a0a919c713fdfb17 /tmp/aDb474z4Ly.js   

说明

  • 这个 Node.js 程序为脚本所在的文件体创建 HMAC,作为文件路径的结果。它首先从命令行参数中填充文件路径,然后添加所需的 crypto 和 fs 模块。
  • crypto.createHamc() 方法使用 SHA-1 算法生成一个 HMAC 对象。之后,它打开指定文件的读取流,并等待 'readable' 事件被触发。如前所述,数据块从文件中读取,并通过 update 方法传递给 HMAC 对象。
  • 最后,当所有数据都读取完毕(dataStore 为 null)时,计算出最终的 HMAC digest,并显示其十六进制表示形式以及文件路径。程序最后在屏幕上显示消息“Execution is done!”。

结论

总之,Node.js 中的 crypto. createHmac() 方法是一个基本类别,它通过 HMAC(基于哈希的消息认证码) 实现数据完整性和真实性。该方法属于 crypto 模块类别。它包括使用加密哈希函数并结合秘密密钥来开发哈希值,以检查消息及其真实性。

理解和使用 Node.js 中的 crypto. createHmac() 还可以使开发人员能够有效地为他们的应用程序增加安全性。HMAC 能够 保护数据 并检查真实性和完整性,这是创建安全应用程序的基础。HMAC 还用于其他相关领域,例如证明文件未被篡改或确保 API 的每个请求都是真实的。这些示例有助于描述给定方法在实际编程实践中如何正确使用,因此它在安全编程领域的重要性以及功能性。