gpt4 book ai didi

javascript - OpenPGPJS : Invalid session key for decryption

转载 作者:行者123 更新时间:2023-12-03 16:53:27 25 4
gpt4 key购买 nike

当我尝试使用我的私钥解密一些装甲数据时,OpenPGP JS 会引发以下错误:
未捕获( promise 中)错误:解密消息时出错:用于解密的 session key 无效。在 onError (openpgp.min.js:16057) onError @ openpgp.min.js:16057

据我从谷歌得知,这意味着加密出了点问题,但我不知道它是什么。更糟糕的是,它似乎仅与某些文件不一致(似乎在同一时间加密?)以这种方式失败。加密消息似乎没有任何格式错误。

如果有人对此有任何调试提示,将不胜感激。什么会引发此错误?下面是我的代码摘录,主要基于 openPGPJS 示例代码。

有关我的代码在做什么的额外信息,图像文件在客户端被加密,上传到服务器,下载到其他地方,然后被解密。

function encryptData(data) {
var openpgp = window.openpgp;
var options, encrypted;
var pubkey = `-----BEGIN PGP PUBLIC KEY BLOCK-----...-----END PGP PUBLIC KEY BLOCK-----`;

options = {
data: data,
publicKeys: openpgp.key.readArmored(pubkey).keys
};

return openpgp.encrypt(options);
}

function decryptPGP(encData, doneFunc) {
var privkey = `-----BEGIN PGP PRIVATE KEY BLOCK-----...-----END PGP PRIVATE KEY BLOCK-----`;
var pubkey = `-----BEGIN PGP PUBLIC KEY BLOCK-----...-----END PGP PUBLIC KEY BLOCK-----`;
var passphrase = '...';
var privKeyObj = openpgp.key.readArmored(privkey).keys[0];
privKeyObj.decrypt(passphrase);

options = {
message: openpgp.message.readArmored(encData),
publicKeys: openpgp.key.readArmored(pubkey).keys,
privateKey: privKeyObj
};

openpgp.decrypt(options).then(function(plaintext) {
doneFunc(plaintext.data);
});
}

最佳答案

我有同样的问题。要解决它,请使用 base64 对加密结果进行编码。然后可以根据需要通过 Internet 发送该 base64 字符串。想解密的时候只要先解密base64再解密

等待 openpgp.message.readArmored(Base64.decode(encData))

将工作!

关于javascript - OpenPGPJS : Invalid session key for decryption,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44104735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com