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