首页 > 解决方案 > 如何使用我的私钥加密数据并使用 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);

标签: angulartypescriptjsencrypt

解决方案


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

我分叉了,我正在维护这个库:https ://github.com/michaeldisaro/jsencrypt 。

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

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

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


推荐阅读