【问题标题】:Node openpgp error when encrypting: Could not find valid key packet for encryption in key加密时节点openpgp错误:在密钥中找不到用于加密的有效密钥包
【发布时间】:2019-10-28 03:42:38
【问题描述】:

尝试使用 pgp 公钥加密字符串时出现错误: '在密钥 9ae788ff8eec0b31 中找不到用于加密的有效密钥包'

此错误不会出现在每个键上,而是出现在大多数键上。这是错误的关键之一:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG v1.43

mI0EXQJU0gEEAKZKsTmlR71mPgzQR6hyGJXR4tuoH/RgJPnZGCKPlJqCj8GCvlTa
Jqy5gUZQJItwS4ssFU56+fI1a47oe08covHWgLAsGRWCxsD/oneFhddPhhZkHOui
s1CW3CNDQ8hhl/DykhUoegKCmvNDzRVsD4y7ueLkzAisu3MH3ShQWDB/ABEBAAG0
CUxJTlhPIFNBU4icBBABAgAGBQJdAlTSAAoJEPa8OTh7Vcnz4kID/0KL7RBA5Z83
WuirfaVXF+Kqi4QXQO4EBUUknSbO+igRSJ/MLV4NROuhn2AZ3YWXK9B8rLsaZy9Q
49/rr1lPn648Wq2lAoN7uLwtycspFQscjLT76hDMnoOvJGzjrpi+xC7n0W7ggLRN
TkCUB8b+OBvwPhptny8kS6DASwew0Fp7
=2Sis
-----END PGP PUBLIC KEY BLOCK-----

这是我用来加密的函数

    const openpgp = require('openpgp')
    async function pgpEncrypt(pubkey, message) {
        await openpgp.initWorker({ path: 'openpgp.worker.js' })
        const options = {
            message: await openpgp.message.fromText(message), // input as Message object
            publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for encryption
            armor: false
        }
        const cipherText = await openpgp.encrypt(options)
        return cipherText.data
    }

这有什么问题?我怎样才能确保密钥与这个库一起工作?

【问题讨论】:

  • 问题解决了吗?

标签: node.js encryption key pgp openpgp.js


【解决方案1】:

这是版本问题。试试 4.10.8 版本的 openpgp。对依赖项使用以下几行。

"dependencies": {
  "openpgp": "^4.10.8"
}

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2014-10-19
    • 2019-03-26
    • 2014-04-19
    相关资源
    最近更新 更多