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

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

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

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


person user3219897    schedule 23.04.2014    source источник
comment
Пробовали ли вы использовать gpg-agent?   -  person Oleg Estekhin    schedule 23.04.2014
comment
нет, будет проще?   -  person user3219897    schedule 23.04.2014


Ответы (3)


Вы указываете GnuPG прочитать фразу-пароль из стандартного ввода, используя --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 / LNRF).

person Jens Erat    schedule 23.04.2014
comment
Похоже, он не работает ни с файлом, ни с прямой передачей парольной фразы. - person user3219897; 23.04.2014
comment
Вы удалили параметр --passphrase-fd? И еще: «Не работает» — вообще бесполезное описание проблемы. Как пробовали, что получается, что не получается? - person Jens Erat; 23.04.2014
comment
gpg.exe --output test.csv --batch --passphrase xyz --decrypt WSB330TJ.CSTDJIDF.TXT.asc.14.04.22_00.59.gpg - person user3219897; 23.04.2014
comment
Приведенная выше команда запрашивает парольную фразу, а затем расшифровывает файл. - person user3219897; 23.04.2014
comment
Содержит ли парольная фраза какие-либо специальные символы командной строки Windows? Возможно, вам придется поместить его в кавычки или избежать их. - person Jens Erat; 23.04.2014
comment
Йенс, все еще не работает, найдите мой описанный ответ. - person user3219897; 28.04.2014
comment
ты смог решить эту проблему? У меня похожая проблема, любое обновление действительно помогло бы. - person Harika Mamidi; 08.10.2014
comment
Я обнаружил, что при использовании --passphrase-file с gpg4win файл фразы-пароля должен иметь разделители строк unix\n, а не разделители dos/windows\r\n. - person Thierry; 29.01.2015

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

person GregT    schedule 16.10.2015

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

gpg2 -se --passphrase yourpassword --batch --yes -r [email protected] filename
person KP Singh    schedule 27.02.2017