Node.js verify.verify(object, signature[, signatureEncoding]) 方法

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

在本文中,您将通过其语法、参数和示例了解 Node.js 的 verify.verify(object, signature[, signatureEncoding]) 函数。

Node.js verify.verify(object, signature[, signatureEncoding]) 函数是什么?

Node.js crypto 模块的 verify.verify(object, signature[, signatureEncoding]) 函数用于确认数字签名的真实性。通过利用与提供的公钥或证书匹配的私钥,此方法会验证提供的签名是否与给定的数据匹配。签名是要验证的实际签名;object 参数通常是公钥;signatureEncoding 是一个可选参数,用于指示签名的编码(例如,“hex”、“base64”)。

可以使用 crypto 模块中的 Verify 类的 verify.verify() 方法来确认签名的真实性。此方法使用提供的公钥来验证数据项和签名是否相同。在加密应用程序中,此方法必须确保数据的完整性和真实性。

语法

它具有以下语法:

参数

  • Object: 这是验证所需的信息或公钥。可以使用包含公钥和其他数据的对象,而不是字符串、buffer、TypedArray、DataView 或其他格式。
  • Signature: 需要验证的签名。它可以是字符串、DataView、TypedArray 或 buffer。
  • SignatureEncoding: 如果签名以字符串形式提供,则为其编码(可选)。通常使用 “base64”“hex” 编码。

返回值:

此方法返回一个布尔值。如果签名匹配,则返回“true”;否则,返回“false”。

示例 1

让我们看一个示例来演示 Node.js 的 verify.verify(object, signature[, signatureEncoding]) 函数。

输出

 
true   

说明

在此示例中,此代码演示了如何使用 Node.js 中的 crypto 模块通过加密函数来签名和验证数据。它首先同时创建一个 RSA 密钥对,包括私钥和公钥。“Some data to sign” 是要签名的指定数据。它使用 crypto.createSign() 方法生成一个 Sign 对象,用数据更新它,然后使用私钥对数据进行签名。之后,通过使用 crypto.createVerify() 函数创建 Verify 对象并用相同的数据更新它,然后用公钥检查签名。如果签名有效,验证结果将显示在控制台中,并且应该是 true。此外,故意尝试再次使用 Verify 对象进行验证会导致问题,证明 “crypto.createVerify()” 对象不可重用,并且在多次验证尝试时会抛出错误。

示例 2

让我们看另一个示例来演示 Node.js 的 verify.verify(object, signature[, signatureEncoding]) 函数。

输出

 
 false  

说明

在此示例中,Node.js 代码展示了如何使用 crypto 模块来创建、签名和验证数据。为演示目的,首先创建了一个由公钥和私钥组成的 RSA 密钥对。它声明有“some data to sign”需要签名。使用私钥,使用 crypto.createSign() 方法生成一个 Sign 对象,用数据更新并用于生成签名。通过删除几个字符来修改签名,使其无效以模拟错误的验证实例。之后,使用 crypto.createVerify(), 创建一个 Verify 对象,用相同的信息更新它,并用于将修改后的签名与公钥进行比较。