Node.js – diffieHellman.getGenerator() 方法
该方法以指定的编码返回Diffie-Hellman生成器。如果传递编码,则返回字符串,否则返回缓冲区。diffieHellman.getGenerator()
语法
diffieHellman.getGenerator([encoding])
参数
encoding-此参数指定返回值的编码。
示例1
创建一个名为“generator.js”的文件并复制以下代码。创建文件后,使用命令“nodegenerator.js”运行此代码,如下例所示:
//diffieHellman.getPrime()演示示例 //从crypto模块导入cryptoDiffieHellman const { 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模块导入cryptoDiffieHellman const { createDiffieHellman } = require('crypto'); //为“a”生成密钥 const a = createDiffieHellman(512); //为“a”生成素数 const primeA = a.getPrime(); //生成a的生成器 const generatorA = a.getGenerator() //生成a的生成器Keys const keyA = a.generateKeys(); //为b生成密钥 const b = createDiffieHellman( primeA, generatorA ); //为b生成素数 const primeB = b.getPrime(); //生成b的生成器 const generatorB = b.getGenerator() //生成b的生成器Keys const 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 }