【问题标题】:GNUPG - stdin encrypted file and passphrase on windowsGNUPG - Windows 上的标准输入加密文件和密码
【发布时间】:2012-10-22 22:49:11
【问题描述】:

如何在 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

如果我不尝试通过标准输入发送加密文件,那么解密工作正常。

最终我想做的是根据文件名中带有日期时间戳的文件掩码解密文件。概述如下,

C:\>gpg.exe --output yyyyMMdd.csv --batch --passphrase-fd 0 --decrypt < *_yyyyMMdd_*.txt < [PASSPHRASE_FILE]

我不确定这是否可行,因为我无法使基本场景正常工作,如果有人能建议我实现这一目标的最佳方法,我将不胜感激。

【问题讨论】:

    标签: windows gnupg


    【解决方案1】:

    不要对您要解密的文件使用重定向,仅对包含您的密码的文件使用重定向:

    C:\>gpg.exe --output [OUTPUT_FILE] --batch --passphrase-fd 0 --decrypt [INPUT_FILE] < [PASSPHRASE_FILE]
    

    但老实说,您可能更容易从密钥中删除密码。毕竟,将密码存储在文件中并不是很安全。只需将您的密码更改为空白并保护您的 gpg 主目录,以拒绝对您自己以外的任何进程的访问。

    【讨论】:

    • 感谢您的回复。不幸的是,我已集成到现有系统中,因此无法更改文件上的密码。
    • 我会先使用批处理或powershell脚本查找文件,然后使用结果gpg命令。
    • 如何解密为原始文件名(我不知道原始文件名)(有人加密 111.AAA 并将其作为 111.PGP 发送给我 - 我想解密它但我不知道已经是 AAA 了。我怎样才能告诉 pgp 自动执行)?
    • @RoyiNamir 我不确定这是否可能。据我所知,原始文件名没有记录在加密文件中的任何地方。您可能想问一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2023-03-17
    • 1970-01-01
    • 2010-12-18
    • 2019-08-10
    • 2012-03-06
    • 1970-01-01
    相关资源
    最近更新 更多