【问题标题】:Forge JS Library - How to define RSA publicKey?Forge JS 库 - 如何定义 RSA publicKey?
【发布时间】:2017-01-24 14:38:09
【问题描述】:
我正在使用Forge Github Library 处理密码学。
我有一个带有服务器的客户端(具有相同库的 node.js)套接字通信(socket.io)。在客户端,我使用 forge 生成 RSA 公钥/私钥并将公钥发送到服务器。但是当我在服务器中收到密钥时,我没有收到对象中的encrypt 方法。
这是我收到的对象:Object {n: BigInteger, e: BigInteger}。那么如何使用这些信息创建 RSA 公钥来加密消息呢?
【问题讨论】:
标签:
javascript
cryptography
rsa
【解决方案1】:
您需要将公钥对象转换为可导出的格式,例如 PEM,它是二进制编码为 base64 的。将 PEM 内容发送到服务器并重新创建公钥
// convert a Forge public key to PEM-format
var pem = pki.publicKeyToPem(publicKey);
// convert a PEM-formatted public key to a Forge public key
var publicKey = pki.publicKeyFromPem(pem);
也可以从模数和指数 (n,e) 构建公钥,但我不知道 forge 是否允许这样做