Verify类


Verify 类是用于验证签名的工具类。它可以以两种方式之一使用:

crypto.createVerify() 方法用于创建 Verify 实例。Verify 对象无法直接使用 new 关键词创建。

示例:将 Verify 对象用作流:

  1. const crypto = require('crypto');
  2. const verify = crypto.createVerify('RSA-SHA256');
  3. verify.write('some data to sign');
  4. verify.end();
  5. const public_key = getPublicKeySomehow();
  6. const signature = getSignatureToVerify();
  7. console.log(sign.verify(public_key, signature));
  8. // Prints true or false

示例:使用 verify.update()verify.verify() 方法:

  1. const crypto = require('crypto');
  2. const verify = crypto.createVerify('RSA-SHA256');
  3. verify.update('some data to sign');
  4. const public_key = getPublicKeySomehow();
  5. const signature = getSignatureToVerify();
  6. console.log(verify.verify(public_key, signature));
  7. // 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])

使用给定的 objectsignature 验证提供的数据。object 参数是一个包含 PEM 编码对象的字符串,它可以是 RSA 公钥、DSA 公钥或一个 X.509 证书。signature 参数是先前计算的数据的签名,signature_format 可以是 'binary''hex''base64'。如果指定了 signature_formatsignature 期望是一个字符串,否则期望是一个 Buffer

返回 truefalse 取决于数据和公钥的签名的有效性。

在调用 verify.verify() 方法之后,Verify 对象将不能再次使用。多次调用 verify.verify() 将导致抛出错误。