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)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...