2

我使用 gpg (GnuPG) 1.4.11。foo.pdf通过加密文件gpg -c foo.pdf。然后是加密文件foo.pdf.gpg,此外,原始文件foo.pdf存在。foo.pdf.gpg然后我可以按gpg foo.pdf.gpg预期解密。但是,如果我使用gpg -o foo.pdf -c foo.pdf并选择在加密时覆盖现有文件,然后使用gpg foo.pdf来解密加密文件,最后选择覆盖现有文件foo.pdf(再次),该文件仍然受到保护,无法查看。

然后我再次尝试执行gpg foo.pdf(我认为第一次解密失败,这就是我再次尝试的原因)。现在文件似乎已损坏:gpg: [don't know]: 1st length byte missing. 有任何想法吗?覆盖文件通常不是一个好主意吗?我希望foo.pdf.gpg在加密后获得一个文件(原始文件foo.pdf被自动删除)。

4

1 回答 1

2

GPG 正在写入它正在读取的同一个文件(没有临时文件)。当它读取明文进行加密时,该数据正在被 GPG 正在写出的已加密数据破坏(反之亦然)。一般来说,这是行不通的(它就像一个过滤器用它的输出来修改它的输入)。

于 2012-06-21T13:32:13.123 回答