Node.js 中的 crypto.createDiffieHellman() 方法
上述方法创建了一个 DiffieHellman 密钥交换对象,借助提供的素数和可选的特定生成器。生成器参数既可以保存字符串、数字,也可以保存 Buffer 值。生成器的默认值为 2。
语法
crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator], [generatorEncoding]
参数
上述参数描述如下:
素数– 将生成的素数位数。输入值的类型为 number。
素数编码– 此参数定义素数字符串的编码。可能输入的类型为:字符串、缓冲区、TypedArray 和 DataView。
生成器– 用于生成交换密钥对象的生成器。默认值:2。
生成器编码– 此参数定义生成器字符串的编码。
示例
创建一个名为 index.js 的文件并复制以下代码片段。在创建文件后,使用以下命令运行代码,如以下示例所示:
node index.js
程序代码
// crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator],[generatorEncoding]) // Demo Example // Importing the crypto module const crypto = require('crypto'); // Initializing and defining the prime value const server = crypto.createDiffieHellman(20); // Generating keys server.generateKeys(); // Creating keys using server prime and generator const client= crypto.createDiffieHellman( server.getPrime(), server.getGenerator()); client.generateKeys(); // Printing the server and client values 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]) // Demo Example // Importing the crypto module const crypto = require('crypto'); // Initializing and defining the prime value const val = crypto.createDiffieHellman(12); // Printing prime value for abve DiffieHellman console.log(val.getPrime()); // Printing the generator value console.log(val.getGenerator())
输出
C:\home
ode>> node index.js <Buffer 0f 6b> <Buffer 02>
广告