如何使用JSEncrypt使用私有密钥加密数据并使用公共密钥解密?

时间:2019-08-20 19:03:45

标签: angular typescript jsencrypt

对于作业分配,我需要使用私钥加密数据并使用公钥解密数据。我正在使用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);

1 个答案:

答案 0 :(得分:0)

现在回答你的问题有点晚了,但我在这里留下了一个参考,供谁希望 JSEncrypt 使用私钥加密并使用公钥解密。

我分叉并维护了这个库:https://github.com/michaeldisaro/jsencrypt

我添加了私钥加密,并修复了填充以与 BouncyCastle 库配合使用。

我可以在 .NETCore 后端成功解密我在客户端使用私钥加密的内容。

也许它会落到需要它的人手中。