我正在使用Forge Github Library来处理加密。
我有一个客户端,其服务器(具有相同库的node.js)套接字通信(socket.io)。在客户端,我使用forge生成RSA公钥/私钥,并将publicKey发送到服务器。但是当我在服务器中收到密钥时,我在对象中没有收到encrypt
方法。
这是我收到的对象:Object {n: BigInteger, e: BigInteger}
。那么如何使用此信息创建一个RSA公钥来加密消息呢?
答案 0 :(得分:3)
您需要将公钥对象转换为可导出格式,例如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)构建公钥,但我不知道伪造是否允许它