📜  Node.js crypto.createDiffieHellman(prime, primeEncoding, generator, generatorEncoding) 方法

📅  最后修改于: 2022-05-13 01:56:50.990000             🧑  作者: Mango

Node.js crypto.createDiffieHellman(prime, primeEncoding, generator, generatorEncoding) 方法

crypto.createDiffieHellman() 方法用于通过使用指定的素数和可选的指定生成器来创建 DiffieHellman 密钥交换对象。
句法:

crypto.createDiffieHellman( prime, primeEncoding,
                        generator, generatorEncoding )

参数:此方法接受上面提到的四个参数,如下所述:

  • prime:它可以保存字符串、Buffer、TypedArray 或 DataView 类型的元素。
  • primeEncoding:它是素数字符串的编码,类型为字符串。
  • generator:它可以保存 number、 字符串、Buffer、TypedArray 或 DataView 类型的数据。它的默认值为 2。
  • generatorEncoding:它是生成器字符串的编码并返回字符串。

返回值:返回DiffieHellman密钥交换对象。
下面的示例说明了在 Node.js 中使用crypto.createDiffieHellman() 方法
示例 1:

javascript
// Node.js program to demonstrate the 
// crypto.createDiffieHellman() method
  
// Including crypto module
const crypto = require('crypto');
  
// Creating DiffieHellman with prime
const alice = crypto.createDiffieHellman(20);
  
// Generate keys
alice.generateKeys();
  
// Creating DiffieHellman to get
// prime and generator
const bob= crypto.createDiffieHellman(
      alice.getPrime(), alice.getGenerator());
bob.generateKeys();
  
// Prints prime and generator for
// Alice with encoding
console.log("Alice prime (p):",
    alice.getPrime().toString('hex'), 
    "\nAlice generator (G):", 
    alice.getGenerator().toString('hex')
);


javascript
// Node.js program to demonstrate the 
// crypto.createDiffieHellman() method
  
// Including crypto module
const crypto = require('crypto');
  
// Creating DiffieHellman with prime
const k = crypto.createDiffieHellman(30);
  
// Accessing prime value
const p = k.getPrime();
  
// Accessing generator value
const g = k.getGenerator();
  
// Prints prime value
console.log(p);
  
// Prints generator value
console.log(g);


输出:

Alice prime (p): 0a134b
Alice generator (G): 02

示例 2:

javascript

// Node.js program to demonstrate the 
// crypto.createDiffieHellman() method
  
// Including crypto module
const crypto = require('crypto');
  
// Creating DiffieHellman with prime
const k = crypto.createDiffieHellman(30);
  
// Accessing prime value
const p = k.getPrime();
  
// Accessing generator value
const g = k.getGenerator();
  
// Prints prime value
console.log(p);
  
// Prints generator value
console.log(g);

输出:

// Buffer 22 4a 58 5b
// Buffer 02

因此,prime 和 generator 都返回缓冲区。
参考: https://nodejs.org/api/crypto.html#crypto_crypto_creatediffiehellman_prime_primeencoding_generator_generatorencoding