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>

更新日期:2021 年 5 月 20 日

272 条浏览量

开始你的 职业生涯

通过完成课程获得认证

开始
广告