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