当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js crypto.createDiffieHellman()用法及代码示例


上述方法在提供的质数和可选的特定生成器的帮助下创建了一个 DiffieHellman key 交换对象。生成器参数可以保存字符串、数字或缓冲区值。生成器的默认值为 2。

用法

crypto.createDiffieHelmmanGroup(prime, [primeEncoding], [generator], [generatorEncoding]

参数

上述参数描述如下 -

  • prime - 将生成的素数位数。输入值的类型为 number。

  • primeEncoding - 此参数定义素数字符串的编码。可能的输入类型有:字符串、缓冲区、TypedArray 和 DataView。

  • generator - 用于生成交换 key 对象的生成器。默认值:2。

  • generatorEncoding - 此参数定义生成器字符串编码。

示例

创建一个名为 index.js 的文件并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 -

node index.js

Program Code

// 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'), "\nServer generator:", server.getGenerator().toString('hex'));

console.log("Client prime:", client.getPrime().toString('hex'), "\nClient generator:", client.getGenerator().toString('hex'));

输出

C:\home\node>> node index.js
Server prime:0fed0b
Server generator:02
Client prime:0fed0b
Client generator:02

由于为服务器和客户端传递的参数是相同的。因此,生成的 key 也是相同的。

示例

让我们再看一个例子。

// 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\node>> node index.js
<Buffer 0f 6b>
<Buffer 02>

相关用法


注:本文由纯净天空筛选整理自Mayank Agarwal大神的英文原创作品 crypto.createDiffieHellman() Method in Node.js。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。