PGP文件加解密

公钥加密/签名,私钥解密

 

1. B提供公钥给A Gpg4win - Secure email and file encryption with GnuPG for Windows

image

image

image

2. A导入B的公钥,加密文件

image

gpg --full-generate-key # 生成密钥对
gpg --import b_public.asc # 导入公钥
gpg -e -r "B@xx.com" myfile.txt # 加密文件(使用提供公钥的邮箱)
gpg -d myfile.txt.gpg > file.txt # 解密文件

gpg --list-keys # 列出所有公钥
gpg --delete-key user@example.com # 删除公钥

 

# 警告:这会删除所有密钥!
rm -rf ~/.gnupg

gpg --export -a "aabbcc@example.com" > aabbcc_public_key.asc # 导出公钥
gpg --export-secret-keys -a "aabbcc@example.com" > aabbcc_private_key.asc # 导出私钥(需要密码)

3. B解密文件

image

image

 

其他方式

只需一个密码(对称加密)

# 发送端(Alice)加密文件,提示输入密码,生成加密文件:
gpg -c message.txt

# 将 secret_file.txt.gpg 发送给Bob

# 接收端(Bob)解密文件,提示输入密码,生成解密文件:
gpg -o original.txt -d message.txt.gpg

 

 

告警:gpg: Can't check signature: No public key(可忽略)

原因:勾选了签名身份 数字签名(验证文件来源)- 这部分需要签名者的公钥来验证

image

image

方案1:去除勾选 “签名身份” 验签正常

image

image

 方案2:导入发送者公钥,并验证,使用解密私钥和签名公钥

gpg --edit-key "505645074@qq.com" # 导入后手动验证并确认信任
# 输入:fpr # 再次显示指纹
# 输入:trust # 设置信任级别
# 输入:5 (5 = 我绝对相信)
# 输入:y
# 输入:quit

gpg --decrypt --local-user "解密邮箱" --sender "签名邮箱" --output file.txt myfile.txt.gpg # 同时指定解密私钥和验证签名用的公钥

image

 

posted @ 2025-12-11 09:57  CHHC  阅读(5)  评论(0)    收藏  举报