Расшифровать файл GPG с помощью командного файла

Я расшифровываю файл gpg, используя командный файл с кодом ниже.

gpg.exe --output test.csv --batch --passphrase-fd 0 --decrypt WSB330TJ.CSTDJIDF.TXT.asc.14.04.22_00.59.gpg

Хотя он расшифровывает файл, но я должен ввести пароль вручную. Как я могу улучшить его, чтобы он автоматически выбирал ключевую фразу и расшифровывал файл без какого-либо ручного вмешательства? Что я должен добавить здесь?

3 ответа

Вы говорите GnuPG прочитать фразу-пароль из stdin, используя --passphrase-fd 0, Существуют разные варианты чтения парольной фразы, от man gpg:

   --passphrase-fd n
          Read the passphrase from file descriptor n.  Only  the  first  line
          will  be  read  from  file  descriptor  n.  If you use 0 for n, the
          passphrase will be read from STDIN. This can only be used  if  only
          one passphrase is supplied.

   --passphrase-file file
          Read  the  passphrase  from  file file. Only the first line will be
          read from file file. This can only be used if only  one  passphrase
          is  supplied.  Obviously, a passphrase stored in a file is of ques-
          tionable security if other users can read this file. Don't use this
          option if you can avoid it.

   --passphrase string
          Use  string  as  the  passphrase. This can only be used if only one
          passphrase is supplied. Obviously, this  is  of  very  questionable
          security  on  a multi-user system. Don't use this option if you can
          avoid it.

Если вы используете GnuPG 2, не забудьте использовать --batchиначе параметры парольной фразы будут игнорироваться.

Если вы сохранили фразу-пароль в файле, используйте --passphrase-file password.txt, если вы хотите передать его как строку, используйте --passphrase "f00b4r" (конечно, оба раза с использованием соответствующих значений параметров).

@ Thierry отметил в комментариях, что (особенно при использовании Windows) обязательно заканчивайте файл переводом строки в UNIX (\n / LN) вместо перевода строки Windows + возврат каретки (\n\r / ЛНРФ).

Для себя я должен был сделать gpg --batch --passphrase "MyPassword" --decrypt-files C:\PGPFiles\*. Pgp. Выполнение этого с --passphrase не раньше --decrypt-files всегда будет запрашивать у меня пароль. Также, как сказал Тьерри, когда я использовал файл паролей, мне пришлось использовать Notepad++ для преобразования в стиль Unix (Edit->EOL->Unix/OSX Format)

Попробуй это:

gpg2 -se --passphrase yourpassword --batch --yes -r user@mydomain.com filename
Другие вопросы по тегам