以下是使用openpgp.js的一些代码:
const privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0];
await privKeyObj.decrypt(passphrase);
options = {
message: await openpgp.message.readArmored(encryptedData),
privateKeys: [privKeyObj]
};
let decrypted = await openpgp.decrypt(options)当我使用PGP文件运行我的代码时,我得到这个错误:“错误解密消息:会话密钥解密失败。”
我可以使用GPG工具解密文件,但GPG工具警告:“警告:加密的文件没有完整性保护。如果没有完整性保护(缺少修改检测代码),就不可能确定加密数据是否已被修改。“
如果我使用GPG工具解密PGP文件,然后在GPG中重新加密它,那么新的GPG文件在我的代码中运行得很好。这就是为什么我认为openpgp错误可能与MDC警告有关。
这个openpgp.js错误会与此相关吗?如果是这样的话,有没有办法解决这个问题。
发布于 2020-10-22 03:41:10
您的加密文件是由协议的一个非常旧的版本创建的。它是不安全的,所以如果可能的话,你应该请求创建这个文件的人用一个更新的版本重新创建它。
否则,尝试设置config.ignore_mdc_error=true (其中config是全局openpgp config)。
https://stackoverflow.com/questions/64251877
复制相似问题