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

node.jsjavascriptweb developmentfront end technology

上述方法借助提供的素数值和可选的特定生成器创建 DiffieHellman 密钥交换对象。生成器参数可以保存字符串、数字或缓冲区值。生成器的默认值为 2。

语法

crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator], [generatorEncoding]

参数

上述参数的描述如下 −

  • prime – 将生成的素数位数。输入值为数字类型。

  • primeEncoding – 此参数定义素数字符串的编码。可能的输入类型为:string、buffer、TypedArray 和 DataView。

  • generator – 用于生成交换密钥对象的生成器。默认值: 2.

  • generatorEncoding – 此参数定义生成器字符串编码。

示例

创建一个名为 – index.js 的文件并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 −

node index.js

程序代码

// crypto.createDiffieHelmmanGroup(prime, [primeEncoding],
[generator],[generatorEncoding])
// 演示示例

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

// 初始化并定义素数
const server = crypto.createDiffieHellman(20);

// 生成密钥
server.generateKeys();

// 使用服务器素数和生成器创建密钥
const client= crypto.createDiffieHellman(
   ser​​ver.getPrime(), server.getGenerator());

client.generateKeys();

// 打印服务器和客户端值
console.log("Server prime: ", server.getPrime().toString('hex'), "
Server generator: ", server.getGenerator().toString('hex')); console.log("Client prime: ", client.getPrime().toString('hex'), "
Client generator: ", client.getGenerator().toString('hex'));

输出

C:\home
ode>> node index.js Server prime: 0fed0b Server generator: 02 Client prime: 0fed0b Client generator: 02

由于服务器和客户端传递的参数相同。因此,生成的密钥也相同。

示例

我们再看一个例子。

// crypto.createDiffieHelmmanGroup(prime, [primeEncoding],
[generator],[generatorEncoding])
// 演示示例

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

// 初始化并定义素数
const val = crypto.createDiffieHellman(12);

// 打印上述 DiffieHellman 的素数
console.log(val.getPrime());

// 打印生成器值
console.log(val.getGenerator())

输出

C:\home
ode>> node index.js <Buffer 0f 6b> <Buffer 02>

相关文章