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( server.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>