Node.js verify.verify(object, signature[, signatureEncoding]) 方法
在本篇文章中,我们将讨论 verify.verify() 方法 在 NodeJS 的 crypto 模块中的 Verify 类中的用法。verify 类工具用于验证签名。此方法通过提供给定的数据对象和签名来验证签名。
verify 对象在调用 verify.verify() 方法之后不能再次使用。多次调用 verify.verify() 方法将导致抛出错误。
语法:
verify.verify(object, signature, signatureEncoding)
参数: 此方法接受上述三个参数:
- object: 这将是要验证的对象。 **** 它可以是Object、string、ArrayBuffer、Buffer、TypedArray、DataView、KeyObject或CryptoKey类型。
- signature: 此参数定义使用的签名类型,如string、ArrayBuffer、Buffer、TypedArray或DataView类型。
- signatureEncoding: 此参数指定数据的编码方式。
返回值: 此方法返回一个布尔值。如果签名匹配,则返回true,否则返回false。
示例1: 在下面的示例中,我们将验证两个签名。在本例中,由于两个签名相同,所以返回true。
const crypto = require('crypto');
const { privateKey, publicKey } =
crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
});
const sign = crypto.createSign('SHA256');
sign.update('GeeksforGeeks');
sign.end();
const signature = sign.sign(privateKey);
const verify = crypto.createVerify('SHA256');
verify.update('GeeksforGeeks')
verify.end();
console.log(verify.verify(publicKey, signature));
输出:
true
示例2: 在下面的示例中,我们正在验证两个不同的签名。
const crypto = require('crypto');
const { privateKey, publicKey } =
crypto.generateKeyPairSync('rsa', {
modulusLength: 2048,
});
const sign = crypto.createSign('SHA256');
sign.update('GeeksforGeeks');
sign.end();
const signature = sign.sign(privateKey);
const verify = crypto.createVerify('SHA256');
verify.update('Not Same')
verify.end();
console.log(verify.verify(publicKey, signature));
输出:
false
参考: https://nodejs.org/api/crypto.html#verifyverifyobject-signature-signatureencoding