约翰想寄给1.txt
保罗。
他加密了它。现在该文件名为myFile.pgp
,他将其发送给Paul。
保罗得到了文件。
Paul怎样(可能的话)知道原始文件名(1.txt
)是什么?是否有参数(--xxx
)来查看文件名?
我在控制台模式下使用GNU PGP(GnuPG)。
约翰想寄给1.txt
保罗。
他加密了它。现在该文件名为myFile.pgp
,他将其发送给Paul。
保罗得到了文件。
Paul怎样(可能的话)知道原始文件名(1.txt
)是什么?是否有参数(--xxx
)来查看文件名?
我在控制台模式下使用GNU PGP(GnuPG)。
Answers:
使用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 “曼塔斯·米库纳斯<grawity@gmail.com>” :压缩包:算法= 2 :文字数据包: 模式b(62),创建了1356362981,name =“ passwords.txt”, 原始数据:8个字节
(注意:整个文字数据包(包括文件名)均已加密。如果没有私钥,则也看不到名称。)
或者,您可以--decrypt
与--verbose
(或-v -d
简称)一起使用:
$ gpg --verbose --decrypt test.gpg> NUL gpg:公钥是CE7B5510340F19EF gpg:使用子项CE7B5510340F19EF代替主键D24F6CB2C1B52632 创建于2009-10-31的4096位RSA密钥ID ID CE7B5510340F19EF (主键ID D24F6CB2C1B52632上的子键) gpg:使用4096位RSA密钥,ID CE7B5510340F19EF加密,创建于2009-10-31 “曼塔斯·米库纳斯<grawity@gmail.com>” gpg:AES256加密数据 gpg:原始文件名='passwords.txt'
(在Linux中,请> /dev/null
改用。)
如果要解密并保存整个文件,请使用以下--use-embedded-filename
选项:
$ gpg -v-使用嵌入式文件名test.gpg …无聊的输出… gpg:原始文件名='passwords.txt' 文件`passwords.txt'存在。覆盖?(y / N)n
(注意:您不应使用-d
或--decrypt
将此选项使用,因为它从不使用嵌入的文件名。而应使用“默认”操作。)
不要忘记并非所有文件都有名称。在Linux中,gpg
通常用于直接加密另一个程序的输出,而不将其保存在文件中。然后它将显示为:
$ echo测试| gpg --store | gpg-列表包 :压缩包:算法= 1 :文字数据包: 模式b(62),创建1356362394,name =“”, 原始数据:8个字节
当加密(或只是存储),嵌入式文件名可以与被改变--set-filename
。
$ echo测试| gpg --store --set-filename“ test.txt” | gpg-列表包 :压缩包:算法= 1 :文字数据包: 模式b(62),创建了1356362790,name =“ test.txt”, 原始数据:8个字节
-v
?它没有出现在gpg -?
--verbose
。(就像-?
并且-d
是短的形式--help
和--decrypt
。)我的GnuPG版本确实显示它为:“-v,--verbose”中的“选项”部分下。
gpg -v --use-embedded-filename bbb.gpg
提取文件?
--list-packets
不提取。只是显示...(对吗?)