我想对文件/tmp/public.txt
进行对称加密。
gpg --symmetric /tmp/public.txt
该命令将调用enter passphrase
窗口,我想自动发送密码。
我在这里尝试:
echo "mylongpasswordhere" | gpg --passphrase-fd 0 --symmetric /tmp/public.txt
enter passphrase
窗口仍会弹出,如何在gpg的对称加密中自动发送密码?
答案 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)
通过这种方式,您实际上可以对称地加密提供密钥作为命令行参数的文件,尽管这可能意味着系统的其他用户可能会看到所使用的密码。