Verify类
Verify
类是用于验证签名的工具类。它可以以两种方式之一使用:
作为一个可写流,写入数据用于根据所提供的签名进行验证。
使用 verify.update() 和 verify.verify() 方法来验证签名。
crypto.createVerify() 方法用于创建 Verify
实例。Verify
对象无法直接使用 new
关键词创建。
示例:将 Verify
对象用作流:
const crypto = require('crypto');
const verify = crypto.createVerify('RSA-SHA256');
verify.write('some data to sign');
verify.end();
const public_key = getPublicKeySomehow();
const signature = getSignatureToVerify();
console.log(sign.verify(public_key, signature));
// Prints true or false
示例:使用 verify.update() 和 verify.verify() 方法:
const crypto = require('crypto');
const verify = crypto.createVerify('RSA-SHA256');
verify.update('some data to sign');
const public_key = getPublicKeySomehow();
const signature = getSignatureToVerify();
console.log(verify.verify(public_key, signature));
// Prints true or false
verifier.update(data[, input_encoding])
用给定的 data
更新 Verify
内容,给出的 input_encoding
编码,可以是 'utf8'
、'ascii'
或 'binary'
。如果没有提供 encoding
,同时 data
是一个字符串,将强制使用 'utf8'
编码。如果 data
是一个 Buffer,那么 input_encoding
参数会被忽略。
当它作为流时,可以在新数据上多次调用。
verifier.verify(object, signature[, signature_format])
使用给定的 object
和 signature
验证提供的数据。object
参数是一个包含 PEM 编码对象的字符串,它可以是 RSA 公钥、DSA 公钥或一个 X.509 证书。signature
参数是先前计算的数据的签名,signature_format
可以是 'binary'
、'hex'
或 'base64'
。如果指定了 signature_format
,signature
期望是一个字符串,否则期望是一个 Buffer。
返回 true
或 false
取决于数据和公钥的签名的有效性。
在调用 verify.verify()
方法之后,Verify
对象将不能再次使用。多次调用 verify.verify()
将导致抛出错误。