约翰想寄给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 字节