PGP (GnuPG) - 原始文件名是什么?

Roy*_*mir 11 pgp gnupg

约翰想寄给1.txt保罗。

他加密。现在文件名为myFile.pgp,他将其发送给 Paul。

保罗拿到文件。

Paul 如何(如果可能)知道原始文件名 ( 1.txt) 是什么?是否有参数 ( --xxx) 来查看文件名?

我在控制台模式下使用 GNU PGP (GnuPG) 。

use*_*686 19

使用 GnuPG,原始文件名可以在gpg --list-packets.

$ gpg --list-packets test.gpg
:pubkey enc 数据包:版本 3,算法 1,keyid CE7B5510340F19EF
    数据:[4095 位]
:加密数据包:
    长度:67
    mdc_method: 2
gpg:使用 4096 位 RSA 密钥加密,ID CE7B5510340F19EF,创建于 2009-10-31
      “Mantas Mikul?nas <grawity@gmail.com>”
:压缩包:算法=2
:文字数据包:
    模式 b (62), 创建 1356362981, name="passwords.txt",
    原始数据:8 字节

(注意:整个文字数据包,包括文件名,都是加密的。如果你没有私钥,你也看不到名字。)


或者,您可以--decrypt与 with --verbose(或-v -d简称)一起使用:

$ gpg --verbose --decrypt test.gpg > NUL
gpg:公钥是 CE7B5510340F19EF
gpg:使用子键 CE7B5510340F19EF 代替主键 D24F6CB2C1B52632
4096 位 RSA 密钥,ID CE7B5510340F19EF,创建于 2009-10-31
         (主键 ID D24F6CB2C1B52632 上的子键)
gpg:使用 4096 位 RSA 密钥加密,ID CE7B5510340F19EF,创建于 2009-10-31
      “Mantas Mikul?nas <grawity@gmail.com>”
gpg:AES256 加密数据
gpg:原始文件名='passwords.txt'

(在 Linux 中,> /dev/null改为使用。)


如果要解密并保存整个文件,请使用以下--use-embedded-filename选项:

$ gpg -v --use-embedded-filename test.gpg
 …无聊的输出…
gpg:原始文件名='passwords.txt'
文件“passwords.txt”存在。覆盖?(y/N) n

(注意:您不应使用-d--decrypt与此选项一起使用,因为它从不使用嵌入的文件名。相反,请使用“默认”操作。)


不要忘记并非所有文件都有名称。在 Linux 中,gpg通常用于直接加密另一个程序的输出,而不将其保存在文件中。然后它会显示为:

$回声测试| gpg --store | gpg --list-packets
:压缩包:算法=1
:文字数据包:
    模式 b (62), 创建 1356362394, name="" ,
    原始数据:8 字节

加密(或只是存储),嵌入式文件名可以与被改变--set-filename

$回声测试| gpg --store --set-filename "test.txt" | gpg --list-packets
:压缩包:算法=1
:文字数据包:
    模式 b (62), 创建 1356362790, name="test.txt",
    原始数据:8 字节