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


11

约翰想寄给1.txt保罗。

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

保罗得到了文件。

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

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

Answers:


17

使用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个字节

--list-packets不提取。只是显示...(对吗?)
Royi Namir 2012年

1
@RoyiNamir:对。但是它确实解密,因为某些数据包(包括原始文件名)已加密。
user1686

这是什么-v?它没有出现在gpg -?
Royi Namir 2012年

@RoyiNamir:这是的缩写--verbose。(就像-?并且-d是短的形式--help--decrypt。)我的GnuPG版本确实显示它为:“-v,--verbose”中的“选项”部分下。
user1686

我不明白:为什么要gpg -v --use-embedded-filename bbb.gpg提取文件?
罗伊·纳米尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.