Node.js – diffieHellman.getGenerator方法
该方法以指定的编码返回 Diffie-Hellman 生成器。如果传递编码,则返回字符串,否则返回缓冲区。diffieHellman.getGenerator()
语法
diffieHellman.getGenerator([encoding])
参数
encoding - 此参数指定返回值的编码。
示例 1
创建一个名为“ generator.js ”的文件并复制以下代码。创建文件后,使用命令“ node generator.js ”运行此代码,如下例所示:
// diffieHellman.getPrime() 演示示例// 从crypto模块导入cryptoDiffieHellmanconst { createDiffieHellman } = require('crypto');// 初始化 diffieHellman 对象const dh = createDiffieHellman(512);// 生成 DiffieHellman 的生成器// 定义生成器let dhGenerator = dh.getGenerator()console.log('Buffer (when encoding is not specified) : ', dhGenerator)// 编码指定// 返回字符串dhGenerator = dh.getGenerator('base64')console.log('String (when encoding is specified) : ', dhGenerator)
输出结果
Buffer (when encoding is not specified) : <Buffer 02> String (when encoding is specified) : Ag==
示例 2
让我们再看一个例子。
// diffieHellman.getGenerator() 演示示例// 从crypto模块导入cryptoDiffieHellmanconst { createDiffieHellman } = require('crypto');// 为“a”生成密钥const a = createDiffieHellman(512);// 为“a”生成素数const primeA = a.getPrime();// 生成 a 的生成器const generatorA = a.getGenerator()// 生成 a 的生成器Keysconst keyA = a.generateKeys();// 为 b 生成密钥const b = createDiffieHellman( primeA, generatorA );// 为 b 生成素数const primeB = b.getPrime();// 生成 b 的生成器const generatorB = b.getGenerator()// 生成 b 的生成器Keysconst keyB = b.generateKeys();// 交换秘密const secretA = a.computeSecret(keyB);const secretB = b.computeSecret(keyA);let isSymmetric = secretA.toString('hex') == secretB.toString('hex')console.log('Are keys Symmetric : ${ isSymmetric }')
输出结果
Are keys Symmetric : ${ isSymmetric }