阅读 177

Node.js – diffieHellman.getPrime方法

diffieHellman.getPrime()返回具有指定编码的 Diffie-Hellman 生成的素数。如果编码被传递,它返回一个字符串,否则将返回一个缓冲区。

语法


diffieHellman.getPrime([encoding])


参数

它只需要一个参数

  • encoding – 此参数指定返回值的编码。

示例 1

创建一个名为“prime.js”的文件并复制以下代码片段。创建文件后,使用命令“node prime.js”运行此代码。


// diffieHellman.getPrime() 演示示例// 从crypto模块导入cryptoDiffieHellmanconst { createDiffieHellman } = require('crypto');// 初始化 diffieHellmanconst dh = createDiffieHellman(512);// 从 diffieHellman 生成素数let dhPrime = dh.getPrime()console.log('Buffer (when encoding is not specified): ', dhPrime)// 用指定的编码生成素数dhPrime = dh.getPrime('base64')console.log('String (when encoding is specified): ', dhPrime)

输出结果

Buffer (when encoding is not specified): <Buffer bd b7 17 22 2f 08 fa 82 2e b6 7d 5c 7d 25 5c 3e 17 9f 47 59 8d 67 eb 87 42 9d 86 c2 a7 85 3b 77 90 f2 e0 b9 70 8a b5 d6 9e 47 13 4c 7b ef 3e df 71 a9 ... >String (when encoding is specified): vbcXIi8I+oIutn1cfSVcPhefR1mNZ+uHQp2GwqeFO3eQ8uC5cIq11p5HE0x77z7fcanQvU7p58u1yKv9fa3Muw==


示例 2

让我们再看一个例子。


// diffieHellman.getPrime() 演示示例// 从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 }` )console.log("对称键A: ", secretA)console.log("对称密钥B: ", secretB)

输出结果

Are keys Symmetric : true对称键A: <Buffer 6a ba e7 5c b2 7a d2 b3 eb 67 ad 6e 2d 35 04 e4 cc fc a8 25 4e 03 f9 68 98 dd f6 83 53 75 5b f6 6b b3 2f 2f 09 a3 24 96 83 45 57 d5 3f 8c b2 60 ba 18 ... >对称密钥B: <Buffer 6a ba e7 5c b2 7a d2 b3 eb 67 ad 6e 2d 35 04 e4 cc fc a8 25 4e 03 f9 68 98 dd f6 83 53 75 5b f6 6b b3 2f 2f 09 a3 24 96 83 45 57 d5 3f 8c b2 60 ba 18 ... >


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐