RSA2 非对称加密签名

核心逻辑:

后端(持有私钥):生成签名。

前端(持有公钥):只负责验证签名(确保数据没被篡改)+ 发送请求。

后端(接收请求):再次校验签名(防篡改)。

注意 :对于流式接口,通常我们采用**"后端生成临时令牌"** 的模式。

前端先调一个普通接口拿令牌(令牌里包含了后端签名的数据),前端验证通过后,带着令牌去调流式接口。

第一步:生成密钥对

你需要生成一对 RSA 密钥(建议使用 2048 位或 4096 位)。

可以使用在线工具或 OpenSSL 生成:

  • 私钥 (Private Key)绝密,只放在后端代码或配置中心里。
  • 公钥 (Public Key):公开,放在前端代码里。

1. 如何生成 RSA 密钥对

最标准、最安全的方法是使用 OpenSSL 工具(Windows/Mac/Linux 均可使用)。如果你没有安装 OpenSSL,也可以使用在线生成工具(但要注意安全风险,建议仅用于测试)。

方法一:使用 OpenSSL 命令行(推荐,最安全)

打开你的终端(Terminal)或命令行工具,依次执行以下命令:

第一步:生成私钥 (2048位)

这是你的核心机密,千万不要泄露。

2. 这种密钥会过期吗?

答案是:会,也不全都会。

我们需要区分两个概念:"算法失效""密钥轮换"

A. 算法失效(长期风险)

随着计算机算力的提升(特别是量子计算的发展),曾经安全的密钥长度会变得不安全。

  • 1024位:已不再安全,容易被破解。
  • 2048位 :目前的行业标准,预计安全期至少到 2030年
  • 4096位:更安全,但计算速度稍慢,适合极高安全要求的场景。

结论:你生成的 2048 位密钥,在未来 5-10 年内是安全的。

B. 密钥轮换(运营风险)

即使密钥本身没有破解风险,你也应该定期更换它。原因如下:

  1. 防止私钥泄露:万一你的服务器被黑了,或者代码库泄露了,黑客拿到了私钥,他就可以伪造所有请求。定期换密钥可以将损失降到最低。
  2. 业务隔离:比如"2024年第一季度密钥",过期作废,方便管理。

建议的轮换周期

  • 普通业务 :每 1年 更换一次。
  • 高敏感业务(涉及支付) :每 3-6个月 更换一次,或者一旦发现有任何泄露风险立即更换。

sudo yum install openssl -y

openssl genrsa -out private_key.pem 2048

利用刚才生成的私钥,提取出公钥

openssl rsa -in private_key.pem -pubout -out public_key.pem

1. 获取私钥(放在后端配置里):

cat private_key.pem

chmod 600 private_key.pem (安全权限:建议把私钥权限设为只有你能读,防止服务器上其他人偷看)

2. 获取公钥(放在前端代码里):

cat public_key.pem


  1. 通信安全 :强制使用 HTTPS (TLS) 进行全链路加密,防止网络嗅探。
  2. 身份认证 :采用 JWTAPI Key 机制,验证请求发起方的合法身份。
  3. 数据完整性与来源校验 :采用 RSA-SHA256 数字签名。客户端将业务参数、时间戳、随机数和身份凭证拼接后,使用私钥生成签名,服务端用公钥验签,确保数据未被篡改且来源可信。
  4. 防重放攻击
    • 时效性校验 :请求携带 Timestamp,服务端拒绝处理超过有效窗口(如5分钟)的请求。
    • 唯一性校验 :请求携带 Nonce,服务端在有效期内(如5分钟)通过 Redis 校验其唯一性,防止请求被重复提交。
  5. 敏感数据保护 :对金额、密码等核心敏感字段,采用 AES+RSA 混合加密模式,在保证安全的同时兼顾性能。
  6. 访问控制 :实施 限流 (Rate Limiting) 策略,防止接口被滥用或遭受 DDoS 攻击,保护后端资源和控制成本。
相关推荐
agicall.com几秒前
信电助 - 智能IP话机录音盒 UB-S-AGI 型号功能列表
人工智能·语音识别·信创电话助手·座机语音转文字·固话座机录音转文字
devpotato9 分钟前
人工智能(十六)- SSE 流式:让 Agent 像 ChatGPT 一样“边想边说“
人工智能·语言模型·langchain
深度智能Ai12 分钟前
云声配音(MelodyCloud Studio):AI驱动的全链路音视频创作平台
人工智能·音视频
边缘计算社区19 分钟前
物理 AI 为什么离不开边缘计算?
人工智能·边缘计算
宝贝儿好38 分钟前
【LLM】第三章:项目实操案例:智能输入法项目
人工智能·python·深度学习·算法·机器人
AI创界者1 小时前
【首发】LTX-2.3-10Eros 视频生成本地化部署教程:8G显存流畅运行,支持RTX 50系列(附一键整合包)
人工智能
Elastic 中国社区官方博客1 小时前
Elastic 的 AI agent skills
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
容智信息1 小时前
AI Agent(智能体)的输出格式应该从 Markdown 转向 HTML吗?
前端·人工智能·rust·编辑器·html·prompt
学习论之费曼学习法1 小时前
AI 入门 30 天挑战 - Day 28 - 前沿技术概览
人工智能
陕西字符1 小时前
2026 西安小微企业地图与 AI 问答排名优化:专业技术指南与落地方案
大数据·人工智能