web-dev-qa-db-ja.com

PGP(GnuPG)-元のファイル名は何でしたか?

ジョンは1.txtをポールに送りたいと思っています。

彼はそれを暗号化します。これで、ファイルの名前はmyFile.pgpになり、彼はそれをPaulに送信します。

Paulがファイルを取得します。

Paulは(可能であれば)元のファイル名(1.txt)をどのようにして知ることができますか?ファイル名を確認するためのパラメータ(--xxx)はありますか?

私はGNU PGP(GnuPG)をコンソールモードで使用しています。

11
Royi Namir

GnuPGを使用すると、元のファイル名はgpg --list-packetsで確認できます。

 $ gpg --list-packets test.gpg 
:pubkey enc packet:バージョン3、algo 1、keyid CE7B5510340F19EF 
データ:[4095ビット] 
:暗号化されたデータパケット:
長さ:67 
 mdc_method:2 
 gpg:4096ビットRSAキー、ID CE7B5510340F19EFで暗号化、2009-10-31 
 " MantasMikulėnas<[email protected]> "
:圧縮パケット:algo = 2 
:リテラルデータパケット:
モードb(62)、作成された1356362981、name = "passwords.txt"、
生データ:8バイト

(注:ファイル名を含むリテラルデータパケット全体が暗号化されます。秘密鍵がない場合は、名前も表示されません。)


または、--decrypt--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 
 "MantasMikulėnas<[email protected]>" 
 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 
:compressed packet:algo = 1 
:literal data packet:
 mode b(62)、created 1356362394、 name = ""、
生データ:8バイト

暗号化(または単に保存)する場合、埋め込まれたファイル名は--set-filenameで変更できます。

 $エコーテスト| gpg --store --set-filename "test.txt" | gpg --list-packets 
:compressed packet:algo = 1 
:literal data packet:
 mode b(62)、created 1356362790、name = "test.txt"、 
生データ:8バイト
17
user1686