我制作了自己的程序,利用 gpg 进行加密和解密(对称和非对称)。它在所有帐户上都可以与 gpg1 配合使用,并且对于两种加密和对称解密,它都可以与 gpg2 配合使用,但对于非对称解密,我仍然会收到基于 GUI 的密码提示。关于如何自动传递它(无需用户输入)有什么想法吗?
请记住,它--no-use-agent
已经过时了,并且在 gpg2 中不起作用。
还请记住,我已经尝试了--passphrase myPassphrase
和echo "myPassphrase|gpg --passphrase-fd 0
选项(至少后者对于对称解密工作正常 - 例如用于解密用加密的内容-c
)。
也请记住这一点,--batch
不要--yes
提供帮助。
我得到的印象是(我不知道)GNU Privacy Guard 不想再支持这种事情了——这相当令人沮丧。
我目前的解决方法是使用 gpg2 加密(如果有必要的话,以确保最安全的加密)并使用 gpg1 解密 — 但这样我和使用我的程序的每个人都必须将他们的密钥信息输入到两个版本的 gpg 中(我对此并不感兴趣)。另外,我有点担心他们有一天会停止提供 gpg1(但我不知道那是否会发生)。
另一种选择是允许使用 GPG 的基于 GUI 的输入框而不是我定制的输入框 —— 我想这不是世界末日。
我正在使用带有 GPG 2.2.4 和 libcrypt 1.8.1 的 Xubuntu 18.04。