我正在使用node-RSA加密节点JS中的文本并将其传递给JSEncrypt库正在使用的客户端(javascript),但是解密的消息始终为null。公钥和私钥正在nodeJS服务器上开发,使用公钥加密,并在私有密钥的javascript端解密。
这种情况没有发生!!!!
任何人都可以告诉我应该在javascript中使用哪个库来解密来自nodejs的消息(使用Node-RSA)。或任何其他IDEA !!
我们已经在使用HTTPS,但是我们的用例是这样的,我们之间有一个代理..它和它不信任的代理,我们被迫使用它..所以我们想使用加密解密..虽然我们在我们的客户端有信任的人,所以我们在客户端解密。
答案 0 :(得分:1)
我使用CryptoBrowserify在javascript(客户端)加密
import CryptoBrowserify from 'crypto-browserify';
public encryptStringWithRsaPublicKey(data: string, publicKey: string): string {
var encrypted = CryptoBrowserify.publicEncrypt( publicKey,new Buffer(data));
return encrypted.toString('Base64');
}
加密到Nodejs加密
decrypt = function(privateKey, data) {
var crypto = require('crypto');
var buffer = new Buffer(data, 'base64');
var decrypted = crypto.privateDecrypt(privateKey, buffer);
return decrypted.toString('utf8')
};
答案 1 :(得分:-1)
Nodejs有内置的cryto库,经过优化和测试,建议使用:https://nodejs.org/api/crypto.html