我正在使用以下代码的批处理文件解密gpg文件。
gpg.exe --output test.csv --batch --passphrase-fd 0 --decrypt WSB330TJ.CSTDJIDF.TXT.asc.14.04.22_00.59.gpg
虽然它确实解密了文件,但我必须手动输入密码。 如何改进它以便自动选择密码并解密文件而无需任何人工干预? 我应该在这里添加什么?
答案 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