我正在编写一个从服务器接收 RSA 加密响应的网络应用程序。它需要解密这个文件。
到目前为止,我已经尝试使用 JSEncrypt 在前端解密文件。问题似乎是后端没有正确加密文件。如果我将私钥和公钥都放在前端,我可以成功加密和解密。问题似乎是我加密响应的方式。当我在 nodeJS 中读取文件并使用以下代码加密文件时:
fs.readFile("rsaPublicKey", "utf8", (err, data) => {
if (err) throw err;
pubKey = data;
});
encryptedMessage = crypto.publicEncrypt(
{
key: pubKey,
padding: crypto.constants.RSA_PKCS1_OAEP_PADDING,
oaepHash: "sha256",
},
Buffer.from(message)
);
res.send({"response": encryptedMessage.toString("base64")});
该消息大于使用 JSEncrypt 加密的同一消息。
Node.JS 消息:WLptALzMMws/Qj8qzeYkQ1NyRknoBGX0+oHmtzd0Cwl/RmWnwt6wSJ1qdbk5GMPcEML5iqCISqTfPTSEC6M37KIJAgGLViPENKcvonT7qQbMsn0yftFMl9grn1oLQz567t3lWpdyuCa99xqG+tGsAAOK84HHCW+nprSH6+7olysTnSzzZWvvBl6VGTpmwtoBEGOnZ5C/XLwiW7b2UuzHsksIA1s55OkJMOOUA6neZiJIzHsJSHZGgigKvKwYNQbjhmEBbdNVSvCPIE/d9dpTtWNABcnQX7SCA6/sTZH/f0OnGGXOyYabhq84fdw/WwpouUBWsRQLQYJgKy3EqY/y/w==
JSEncrypt 消息:
Sq9KQyp7KDqy1CBFRLtXm4ZAdxidgUNlp0d6X6xm3m+aBXKv4H7DVu0O40EMWeSWl3dQcBBC/oguJsoAz/GY//77ElIPIRuvPK4YIWPNq2fjoIgIs3Ew4I5TKAP4rph//NSlDLPc4ppXQjj/YO2238EHney9Wxxa9EZzE/p48arkxuEjB0gakWyVgTlF8x6H7LGsD4epS7RWJ0ua1kG1J6ZuMB82qBvq2MugLEuQamAfml4LtwWYFTJ/dIcAqVqrtHe6/F2oNGwXsE2GDEeZcFr4vTkejCs5dFcbbcgg/KVnROdGQHJlDGl0uUBy/2UNml3cT3FocjXkPGJa0zu3/g==
有什么方法可以尝试让它工作吗?