Node.js 中的 crypto.createVerify() 方法

该会创建并返回一个使用通过算法的参数验证对象。可以使用,来获取所有可用签名算法的名称。您可以仅在某些情况下使用签名算法的名称(例如“RHA-SHA256”)而不是摘要算法来创建验证实例。crypto.createVerify()crypto.getHashes()

语法

crypto.createVerify(algorithm, [options])

参数

上述参数描述如下 -

  • algorithm  - 在创建验证对象/实例时,它需要输入要使用的算法名称。

  • options  – 这是一个可选参数,可用于控制流行为。

示例

创建一个具有名称的文件 -createVerify.js并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 -

node createVerify.js

创建验证.js

//Node.jsprogram 来演示 createVerify() 方法的使用

// 导入加密模块
const crypto = require('crypto');

// 使用输入算法创建验证对象
const verify = crypto.createVerify('SHA256');

// 返回验证对象
console.log(verify);
输出结果
C:\home\node>> node createVerify.js
Verify {
   _handle: {},
   _writableState:
   WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      bufferedRequest: null,
      lastBufferedRequest: null,
      pendingcb: 0,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: false,
      bufferedRequestCount: 0,
      corkedRequestsFree:
      {  next: null,
         entry: null,
         finish: [Function: bound onCorkedFinish] } },
   writable: true,
   _events: [Object: null prototype] {},
   _eventsCount: 0,
   _maxListeners: undefined }

示例

让我们再看一个例子。

//Node.jsprogram 来演示 createVerify() 方法的使用

// 导入加密模块
const crypto = require('crypto');

// 从 SHA256 算法创建验证对象
const verify = crypto.createVerify('SHA256');

// 写入以下数据进行签名和验证
verify.write('TutorialPoint');

// 结束方法
verify.end();

   // 开始执行公钥
   const l1 = "-----BEGIN PUBLIC KEY-----\n"

   // 加密数据
   const l2 = "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEXIvPbzLjaPLd8jgiv1TL/X8PXpJNgDkGRj9U9Lcx1
      yKURpQFVavcMkfWyO8r7JlZNMax0JKfLZUM1IePRjHlFw=="

   // 完成公钥执行
   const l3 = "\n-----END PUBLIC KEY-----"

   // 连接所有公钥
   const publicKey = l1 + l2 + l3

   // 将被验证的签名
   const signature = "MEYCIQCPfWhpzxMqu3gZWflBm5V0aetgb2/S+SGyGcElaOjgdgIhALaD4lbxVwa8HUUBFOLz+CGvI
ioDkf9oihSnXHCqh8yV";

   // 如果签名被验证,则打印为真,否则为假
   console.log(verify.verify(publicKey, signature));
输出结果
C:\home\node>> node createVerify.js
false