如何在gpg.exe中管道密码和加密文件?
我尝试过几种不同的组合,但我无法让它发挥作用。
这是我的尝试,
C:\>gpg.exe --output [OUTPUT_FILE] --batch --passphrase-fd 0 --decrypt < [INPUT_FILE] < [PASSPHRASE_FILE]
从此我得到错误
gpg: decrypt_message failed: eof
交换输入和密码短语我得到错误
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: eof
如果我不尝试通过stdin发送加密文件,则解密工作正常。
最终我要做的是根据文件掩码中的日期时间戳来解密文件。下面概述,
C:\>gpg.exe --output yyyyMMdd.csv --batch --passphrase-fd 0 --decrypt < *_yyyyMMdd_*.txt < [PASSPHRASE_FILE]
我不确定这是否有效,因为我无法使基本方案正常工作,如果有人能告诉我实现这一目标的最佳方法,我也将不胜感激。
答案 0 :(得分:2)
请勿对要解密的文件使用重定向,仅针对包含密码的文件:
C:\>gpg.exe --output [OUTPUT_FILE] --batch --passphrase-fd 0 --decrypt [INPUT_FILE] < [PASSPHRASE_FILE]
但老实说,您可能更容易从密钥中删除密码。毕竟,将密码存储在文件中并不是很安全。只需将密码更改为空白并保护您的gpg主目录,以拒绝访问除您自己以外的任何进程。