【问题标题】:Check encrypted file for empty content检查加密文件是否有空内容
【发布时间】:2012-06-21 14:47:23
【问题描述】:

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

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

gpg: 无法处理这种模棱两可的情况 签名数据

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

【问题讨论】:

    标签: encryption gnupg


    【解决方案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 忽略加密文件中的所有签名数据,但是当然您无法判断您正在解密的文件是否来自受信任的来源。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-25
        相关资源
        最近更新 更多