检查加密文件是否有空内容

时间:2010-10-15 11:16:53

标签: encryption gnupg

我正在使用gpg来解密供应商发送给我的文件。当加密文件的内容为空时(供应商告诉我相关文件中没有内容),一切正常。

如果我尝试解密其中一个文件,我会得到:

  gpg:无法处理这种暧昧   签名数据

有没有办法检查文件是否没有内容接受标题,以便我可以将其设置为更优雅地失败?

2 个答案:

答案 0 :(得分:1)

根据this mailing-list post,官方PGP工具有一个错误,有时会导致它产生格式错误的消息。您可以通过运行gpg --list-packets path/to/encrypted/file.pgp并查看输出来验证特定文件是否属于这种情况。如果您看到:onepass_sig packet:紧跟着:signature packet:,那么这可能就是正在发生的事情。

在我的(有限)体验中,如果发件人尝试加密空文件,则会发生这种情况。不幸的是,由于加密的目的是让人很难看到内部的内容,因此在尝试解密之前很难判断出这种情况是否真的如此。 gpg的--list-packets输出会给你一些信息,但我注意到:literal data packet:输出通常会说“原始数据:0字节”,即使消息包含非空文件。

您可以使用--skip-verify选项使gpg忽略加密文件中的所有签名数据,但当然您无法判断您正在解密的文件是否来自可靠来源。

答案 1 :(得分:0)

假设您使用的是unix shell脚本,在尝试解密GPG之前,您可以先执行'[ - / / / file]'。