📜  Node.js crypto.getDiffieHellman() 方法

📅  最后修改于: 2022-05-13 01:56:54.758000             🧑  作者: Mango

Node.js crypto.getDiffieHellman() 方法

crypto.getDiffieHellman() 方法用于创建预定义的DiffieHellmanGroup密钥交换对象。在这里,最喜欢的组是 'modp1'、'modp2'、'modp5',它们在 RFC 2412 中定义,以及 'modp14'、'modp15'、'modp16'、'modp17'、'modp18',在 RFC 3526 中定义。

句法:

crypto.getDiffieHellman( groupName )

参数:此方法接受字符串类型的单个参数groupName

返回类型:返回DiffieHellmanGroup密钥交换对象。

下面的例子说明了在 Node.js 中crypto.getDiffieHellman() 方法的使用:

示例 1:

// Node.js program to demonstrate the 
// crypto.getDiffieHellman() method
  
// Including crypto module
const crypto = require('crypto');
  
// Calling getDiffieHellman method
// with its parameter groupName
const diffiehellmangrp = crypto.getDiffieHellman('modp14');
  
// Prints DiffieHellmanGroup key exchange object
console.log("Key exchange object : ", diffiehellmangrp);

输出:

Key exchange object :  DiffieHellmanGroup 
{ _handle: { verifyError: [Getter] }, verifyError: 0 }

示例 2:

// Node.js program to demonstrate the 
// crypto.getDiffieHellman() method
   
// Including crypto module
const crypto = require('crypto');
   
// Calling two getDiffieHellman method
// with its parameter, groupName
const diffiehellmangrp1 = crypto.getDiffieHellman('modp14');
const diffiehellmangrp2 = crypto.getDiffieHellman('modp14');
   
// Generating keys
diffiehellmangrp1.generateKeys();
diffiehellmangrp2.generateKeys();
   
// Computing secret
const diffiehellmangrp1sc = diffiehellmangrp1
.computeSecret(diffiehellmangrp2.getPublicKey(), null, 'hex');
   
const diffiehellmangrp2sc = diffiehellmangrp2
.computeSecret(diffiehellmangrp1.getPublicKey(), null, 'hex');
   
// Checking if both the secrets are same or not
console.log(diffiehellmangrp1sc === diffiehellmangrp2sc);

输出:

true

参考: https://nodejs.org/api/crypto.html#crypto_crypto_getdiffiehellman_groupname