11

Джон хочет отправить 1.txt Полу.

Он шифрует это. Теперь файл называется myFile.pgp , и он отправляет его Полу.

Пол получает файл.

Как (если возможно) Пол может узнать, какое было первоначальное имя файла (1.txt)? Есть ли параметр (--xxx) для просмотра имени файла?

Я использую GNU PGP (GnuPG) в режиме консоли .

1 ответ1

17

С GnuPG исходное имя файла можно увидеть в gpg --list-packets.

$ gpg --list-packets test.gpg
:pubkey enc packet: version 3, algo 1, keyid CE7B5510340F19EF
    data: [4095 bits]
:encrypted data packet:
    length: 67
    mdc_method: 2
gpg: encrypted with 4096-bit RSA key, ID CE7B5510340F19EF, created 2009-10-31
      "Mantas Mikulėnas <grawity@gmail.com>"
:compressed packet: algo=2
:literal data packet:
    mode b (62), created 1356362981, name="passwords.txt",
    raw data: 8 bytes

(Примечание: весь буквенный пакет данных, включая имя файла, зашифрован. Если у вас нет закрытого ключа, вы также не сможете увидеть имя.)


Также вы можете использовать --decrypt вместе с --verbose (или -v -d для краткости):

$ gpg --verbose --decrypt test.gpg > NUL
gpg: public key is CE7B5510340F19EF
gpg: using subkey CE7B5510340F19EF instead of primary key D24F6CB2C1B52632
4096-bit RSA key, ID CE7B5510340F19EF, created 2009-10-31
         (subkey on main key ID D24F6CB2C1B52632)
gpg: encrypted with 4096-bit RSA key, ID CE7B5510340F19EF, created 2009-10-31
      "Mantas Mikulėnas <grawity@gmail.com>"
gpg: AES256 encrypted data
gpg: original file name='passwords.txt'

(В Linux используйте > /dev/null .)


Если вы хотите расшифровать и сохранить весь файл, используйте параметр --use-embedded-filename :

$ gpg -v --use-embedded-filename test.gpg
…boring output…
gpg: original file name='passwords.txt'
File `passwords.txt' exists. Overwrite? (y/N) n

(Примечание: Вы не должны использовать -d или --decrypt с этой опцией, так как она никогда не использует встроенное имя файла. Вместо этого используйте действие "по умолчанию".)


Не забывайте, что не все файлы имеют имена. В Linux gpg часто используется для непосредственного шифрования вывода другой программы без сохранения его в файле. Затем он будет отображаться как:

$ echo Testing | gpg --store | gpg --list-packets
:compressed packet: algo=1
:literal data packet:
    mode b (62), created 1356362394, name="",
    raw data: 8 bytes

При шифровании (или просто сохранении) внедренное имя файла может быть изменено с помощью --set-filename .

$ echo Testing | gpg --store --set-filename "test.txt" | gpg --list-packets
:compressed packet: algo=1
:literal data packet:
    mode b (62), created 1356362790, name="test.txt",
    raw data: 8 bytes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .