gpg加密时使用命令行输入密码

Linux下gpg版本: gpg (GnuPG) 2.0.14
Windows下gpg版本: gpg (GnuPG) 2.2.7

1. Linux下公钥加密私钥签名
$ gpg --local-user my_prikey --recipient pubkey --armor --sign --batch --yes --passphrase my_passphrase --output test.asc --encrypt test.txt

参数解释:
--local-user表示使用私钥签名
my_prikey为签名私钥
--sign表示签名
--batch表示使用命令行输入
--yes表示默认输入y
--passphrase表示使用私钥密码
my_passphrase为私钥密码
--recipient表示使用公钥加密
pubkey为加密公钥
--armor表示输出格式
--output表示输出文件名
test.asc为加密签名结果文件
--encrypt表示加密文件名
test.txt为待加密签名文件

2. Windows下公钥加密私钥签名
>type "D:/passphrase.txt" | gpg --local-user my_prikey --recipient pubkey --passphrase-fd 0 --pinentry-mode loopback --armor --batch --sign --yes --always-trust --output test.asc --encrypt test.txt

参数解释:
type表示显示文件内容
D:/passphrase.txt为私钥密码所在文件
--passphrase-fd 0 表示密码输入来源为STDIN:STDIN (0), STDOUT (1) and STDERR (2)
--pinentry-mode loopback 表示密码直接输入,不需要弹出密码框

3. 对比需要弹出密码框的命令(Linux/Windows)
$gpg --local-user my_prikey --recipient pubkey --sign --armor --output test.asc --encrypt test.txt

你可能感兴趣的:(安全)