Node.js 中的 crypto.createDiffieHellman() 方法
上述方法在提供的质数和可选的特定生成器的帮助下创建了一个DiffieHellman密钥交换对象。生成器参数可以保存字符串、数字或缓冲区值。生成器的默认值为2。
语法
crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator], [generatorEncoding]
参数
上述参数描述如下-
prime –将生成的素数位的数量。输入值的类型为number。
primeEncoding –此参数定义素数字符串的编码。可能的输入类型有:字符串、缓冲区、TypedArray和DataView。
generator –生成交换密钥对象的生成器。默认值:2。
generatorEncoding –此参数定义生成器字符串编码。
示例
创建一个具有名称的文件-index.js并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示-
node index.js
程序代码
//crypto.createDiffieHelmmanGroup(prime,[primeEncoding],
[generator],[generatorEncoding])
//演示示例
//导入加密模块
const crypto = require('crypto');
//初始化和定义素值
const server = crypto.createDiffieHellman(20);
//生成密钥
server.generateKeys();
//使用服务器素数和生成器创建密钥
const client= crypto.createDiffieHellman(
   server.getPrime(), server.getGenerator());
client.generateKeys();
//打印服务器和客户端值
console.log("服务器主要: ", server.getPrime().toString('hex'), "\nServer generator: ", server.getGenerator().toString('hex'));
console.log("主要客户: ", client.getPrime().toString('hex'), "\nClient generator: ", client.getGenerator().toString('hex'));输出结果C:\home\node>> node index.js 服务器主要: 0fed0b Server generator: 02 主要客户: 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\node>> node index.js
