惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
U
Unit 42
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
I
InfoQ
WordPress大学
WordPress大学
H
Help Net Security
D
Docker
B
Blog
腾讯CDC
A
About on SuperTechFans
Recent Announcements
Recent Announcements
雷峰网
雷峰网
有赞技术团队
有赞技术团队
C
Check Point Blog
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

博客园 - CHHC

跨平台桌面应用(内嵌 Web 界面 + Go RESTful API 服务) Dify 网页爬虫 Ai常用工具 Dify公司内部知识库权限隔离 智能体:OA行政助手 dify4: test-doc dify3: test-api dify2: test-image dify1: test-local-ollama 访问本地大模型 docker + dify + ollma 安装与配置 dify使用 eSIM SGP32 IPAd 适配移远EC200A OpenCPU 公钥解析 eSIM SGP32 自建符合GSMA规范的eIM平台(支持SGP32及SGP22卡接入) eSIM SGP32 eIM GSMA转码器(支持net及java) eSIM SGP32 证书 eSIM SGP32 生成eUICC所需的配置数据 eSIM SGP32 EuiccPackage包eimSignature和euiccSignEPR生成及校验 eSIM SGP32/SGP22 EUICC.SDK - IPAd RTSPShape-包含服务端及客户端 树莓派安装与配置 NetCore树莓派桌面应用程序 C#解析TLV数据(der -> asn1) golang 项目依赖备份 SGP32笔记 SoftSIM - swSIM eSIM SGP.22 LPA程序开发 - 协议解析 eSIM SGP.22 LPA程序开发 - 实现功能 vscode配置c/c++环境 网关开发笔记
PGP文件加解密
CHHC · 2025-12-11 · via 博客园 - CHHC

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

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