对于作业分配,我需要使用私钥加密数据并使用公钥解密数据。我正在使用JSEncrypt,它正在加密我的数据,但是当我尝试解密它时,它返回false。这是有关数字签名的作业。
我试图切换它,并使用我的公钥加密,这确实有效,但是我不想这样做。
(我正在使用不同的功能进行加密,而不是与我解密时使用的功能相同)
//encrypting
var encrypt = new JSEncrypt({
default_key_size: 1024,
default_public_exponent:"010001"
});
this.hashedvalue = sha256(this.selectedPost.value);
encrypt.setKey(val.privateKey);
var encoded = encrypt.encrypt(this.hashedvalue);
//decrypting
var decrypt = new JSEncrypt({
default_key_size: 1024,
default_public_exponent:"010001"
});
decrypt.setKey(val.postUser.publicKey);
var hashedvalue = sha256(val.value);
var decoded = decrypt.decrypt(val.encryptedvalue);
//returns false
console.log(decoded);
console.log(hashedvalue);
答案 0 :(得分:0)
现在回答你的问题有点晚了,但我在这里留下了一个参考,供谁希望 JSEncrypt 使用私钥加密并使用公钥解密。
我分叉并维护了这个库:https://github.com/michaeldisaro/jsencrypt。
我添加了私钥加密,并修复了填充以与 BouncyCastle 库配合使用。
我可以在 .NETCore 后端成功解密我在客户端使用私钥加密的内容。
也许它会落到需要它的人手中。