阅读 174

Node.js – diffieHellman.getPublicKey() 方法

该返回的Diffie-Hellman生成由通过编码指定公钥。如果编码被传递,它将返回一个字符串,否则它将返回一个缓冲区。diffieHellman.getPublicKey()

语法


diffieHellman.getPublicKey([encoding])


参数

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

示例 1

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


// diffieHellman.getPublicKey() 演示示例// 导入加密模块const crypto = require('crypto')// 初始化 diffieHellmanconst dh = crypto.createDiffieHellman(512);// 将默认 publicKey 设为 nulllet publicKey = null// 生成密钥dh.generateKeys()// 使用 base64 编码获取字符串publicKey = dh.getPublicKey('base64')console.log('Public Key (with base64 encoding): ', publicKey, '\n')// 无需编码即可获取缓冲区publicKey = dh.getPublicKey()console.log('Public Key ( ithout encoding): ', publicKey, '\n')

输出结果

Public Key (with base64 encoding): ZY0wKH6d7Te8OPeIgHr7OlwSiH8d7MLGya9wopMgt5/liiKwFTgXsGE/07BQ6u98kUJJbr8cRgtD02D2I21xsg==Public Key ( ithout encoding): <Buffer 65 8d 30 28 7e 9d ed 37 bc 38 f7 88 80 7a fb 3a 5c 12 88 7f 1d ec c2 c6 c9 af 70 a2 93 20 b7 9f e5 8a 22 b0 15 38 17 b0 61 3f d3 b0 50 ea ef 7c 91 42 ... >


示例 2

让我们再看一个例子。


// diffieHellman.getPublicKey() 演示示例// 导入加密模块const crypto = require('crypto')// 初始化 diffieHellmanconst a = crypto.createDiffieHellman(512);const b = crypto.createDiffieHellman(
   a.getPrime(), a.getGenerator() );// 生成密钥a.generateKeys()
b.generateKeys()// 生成公钥let keyA = a.getPublicKey('base64')// 为 b 生成公钥let keyB = b.getPublicKey('base64')// 计算秘密let secretA = a.computeSecret(keyB, 'base64', 'base64')let secretB = b.computeSecret(keyA, 'base64', 'base64')if(secretA === secretB)
   console.log('Symmetric key A:', secretA)
   console.log('Symmetric key B:', secretB)

输出结果

Symmetric key A: shrRZLrIF/Uz52T4XCjALAuRgJ+1luVSesG2Q4bhW2+59qcWu5SI8P3XjSUXRMIcvIGQc2gzv/ENirozxU+iwA==
Symmetric key B: shrRZLrIF/Uz52T4XCjALAuRgJ+1luVSesG2Q4bhW2+59qcWu5SI8P3XjSUXRMIcvIGQc2gzv/ENirozxU+iwA==


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