如何在gpg的对称加密中自动发送密码?

时间:2018-03-22 03:07:33

标签: gnupg

我想对文件/tmp/public.txt进行对称加密。

gpg --symmetric /tmp/public.txt

该命令将调用enter passphrase窗口,我想自动发送密码。

enter image description here

我在这里尝试:

echo "mylongpasswordhere"  | gpg --passphrase-fd 0   --symmetric /tmp/public.txt

enter passphrase窗口仍会弹出,如何在gpg的对称加密中自动发送密码?

3 个答案:

答案 0 :(得分:1)

根据您的GnuPG版本(> = 2.1.0),您需要添加" - pinentry-mode loopback"命令。

对于GnuPG版本> = 2.1.0但是< 2.1.12你还需要添加:" allow-loopback-pinentry"到〜/ .gnupg / gpg-agent.conf

您的命令将是:

echo "mylongpasswordhere"  | gpg --pinentry-mode loopback --passphrase-fd 0   --symmetric /tmp/public.txt

或者你不必使用passphrase-fd和echo,但可以直接提供密码:

gpg --pinentry-mode loopback --passphrase "somepass" --symmetric /tmp/public.txt

答案 1 :(得分:0)

key="it is a long password to encrypt and decrypt my file in symmetric encryption
"

Encypt public.txt.

openssl enc -des3 -a -salt -in public.txt -k ${key} -out public.asc

Decrypt public.asc.

openssl enc -d -des3 -a -salt -k ${key} -in public.asc -out public.out

Can i draw a conclusion that openssl is a more powerful tool for encryption than gpg?

答案 2 :(得分:0)

由于我偶然发现了同样的问题,因此我将发布对我有帮助的答案(来自其他SE问题)。这里的关键选项是--batch --yes

$ gpg --passphrase hunter2 --batch --yes --symmetric file_to_enc

(取自this question

通过这种方式,您实际上可以对称地加密提供密钥作为命令行参数的文件,尽管这可能意味着系统的其他用户可能会看到所使用的密码。