微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OpenPGP.js-收到错误:“解密错误消息:会话密钥解密失败”

如何解决OpenPGP.js-收到错误:“解密错误消息:会话密钥解密失败”

以下是一些使用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错误可能与此有关吗?如果是这样,任何想法如何解决

解决方法

您的加密文件是由该协议的旧版本创建的。它是不安全的,因此,如果可能的话,您应该请求创建文件的人重新创建具有最新版本的文件。

否则,请尝试设置config.ignore_mdc_error=true(其中config是全局openpgp config)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?