使用批处理文件解密GPG文件

时间:2014-04-23 08:59:28

标签: batch-file encryption gnupg

我正在使用以下代码的批处理文件解密gpg文件。

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

虽然它确实解密了文件,但我必须手动输入密码。 如何改进它以便自动选择密码并解密文件而无需任何人工干预? 我应该在这里添加什么?

3 个答案:

答案 0 :(得分:2)

您告诉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换行符+回车符结束文件{{1} } / LNRF)。

答案 1 :(得分:2)

对于我自己,我必须做 gpg --batch --passphrase“MyPassword”--decrypt-files C:\ PGPFiles \ * .pgp 。使用--passphrase不是之前--decrypt-files总是会提示我输入密码。另外,当Thierry说我使用密码文件时,我不得不使用Notepad ++转换为unix样式(编辑 - > EOL-> Unix / OSX格式)

答案 2 :(得分:2)

试试这个:

gpg2 -se --passphrase yourpassword --batch --yes -r user@mydomain.com filename