上述方法在提供的质数和可选的特定生成器的帮助下创建了一个 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>
相关用法
- Node.js crypto.createDiffieHellmanGroup()用法及代码示例
- Node.js crypto.createDecipheriv()用法及代码示例
- Node.js crypto.createSign()用法及代码示例
- Node.js crypto.createHash()用法及代码示例
- Node.js crypto.createCipheriv()用法及代码示例
- Node.js crypto.createVerify()用法及代码示例
- Node.js crypto.createECDH()用法及代码示例
- Node.js crypto.createHmac()用法及代码示例
- Node.js crypto.constants用法及代码示例
- Node.js crypto.checkPrimeSync()用法及代码示例
- Node.js crypto.checkPrime()用法及代码示例
- Node.js crypto.randomFill()用法及代码示例
- Node.js crypto.publicEncrypt()用法及代码示例
- Node.js crypto.getCiphers()用法及代码示例
- Node.js crypto.publicDecrypt()用法及代码示例
- Node.js crypto.hkdfSync()用法及代码示例
- Node.js crypto.randomFillSync()用法及代码示例
- Node.js crypto.webcrypto用法及代码示例
- Node.js crypto.getCurves()用法及代码示例
- Node.js crypto.generateKeyPair()用法及代码示例
注:本文由纯净天空筛选整理自Mayank Agarwal大神的英文原创作品 crypto.createDiffieHellman() Method in Node.js。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。