所以我一直在尝试使用带有node-rsa的节点和带有jsencrypt的 javascript 来创建一个网站(用于分配),其中javascript客户端获取服务器生成的公钥(node-rsa),加密消息(jsencrypt)用户已输入,将其发送到服务器并让服务器对其进行解密(node-rsa).密钥的生成起作用,加密工作但解密不起作用.当我启动节点脚本时,我执行以下加密...
var NodeRSA = require('node-rsa');
var myDecrypter = new NodeRSA({b: 512});
Run Code Online (Sandbox Code Playgroud)
当客户端请求密钥(我使用快速)时,运行以下内容.
app.get('/getPublicKey', function(req, res){
var publicKeyJson = {"Key": ""};
console.log(myDecrypter.exportKey('public'));
publicKeyJson.Key = myDecrypter.exportKey('public');
res.json(JSON.stringify(publicKeyJson));
});
Run Code Online (Sandbox Code Playgroud)
然后客户端像这样保存该密钥......
var myEncrypter = new JSEncrypt();
var myJson = "";
$.getJSON( "getPublicKey", function( data ) {
myJson = JSON.parse(data).Key;
setKey();
});
function setKey() {
myEncrypter.setPublicKey(myJson);
}
Run Code Online (Sandbox Code Playgroud)
当我在客户端加密并发送消息时,我这样做......
function messageEncrypt() {
message = document.getElementById("message").value;
var encrypted = myEncrypter.encrypt(message);
myMessage = {"username": "", "userId": 0.0, "message": ""};
myMessage.username = me.username;
myMessage.userId …Run Code Online (Sandbox Code Playgroud)