我遇到的问题是Crypt::OpenPGP无法解密由 GPG 编码的消息。看来我不是第一个遇到这个问题的人。但是在那个线程上没有找到解决方案。
my $pgp = load_class('Crypt::OpenPGP')->new;
$pgp->handle(
Data => $encrypted,
) or confess $pgp->errstr;
Crypt::OpenPGP 正确提示输入密钥密码,成功找到密钥,并且我已经测试以确保密码可与 GPG 一起使用。但是当尝试使用 Crypt::OpenPGP 解密消息时,我得到了错误。
Symkey decrypt failed: Invalid secret key ID
根据线程以下已测试
- 用 gpg 加密,用 gpg 解密。
- 工作正常,符合预期
- 使用 Crypt::OpenPGP 使用 perl 加密并使用 gpg 解密。
- 工作正常。
- 使用 Crypt::OpenPGP 使用 perl 加密,使用 Crypt::OpenPGP 使用 perl 解密
- 工作正常。
- 使用 gpg 加密并使用 Crypt::OpenPGP 使用 perl 解密
- 失败并显示“Symkey 解密失败:密钥 ID 无效”消息。这是上面描述的情况
这似乎反映了我自己的观察,尽管我没有测试过其中的一些。有谁知道原因甚至更好的解决方法?