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 攻击,保护后端资源和控制成本。
相关推荐
踩着两条虫1 小时前
VTJ.PRO 企业级应用开发实战指南
前端·人工智能·低代码·重构·架构
薛定猫AI2 小时前
【深度解析】Graphify 如何为 AI 编程助手构建项目级知识图谱:降低 Token 消耗、提升代码理解效率
人工智能·知识图谱
ok_hahaha2 小时前
AI从头开始-黑马LongGraph-简单学习
人工智能·学习·langchain·lang graph
子午2 小时前
文本情感识别系统~Python+textCNN算法+深度学习+人工智能
人工智能·python·算法
黑金IT2 小时前
通过“套壳”架构打造工业级 AI 视频生成流水线
人工智能·架构·ai视频
Y学院2 小时前
企业级Dify私有化部署全攻略(Docker Compose生产环境实战)
人工智能·docker·语言模型
Bypass--2 小时前
当 AI 开始干活,安全如何破局
人工智能·安全·chatgpt
虾神说D2 小时前
[AI时代码农生存指南]Rust编写CLI 01. CLI的复古轮回
开发语言·人工智能·rust
IT观测2 小时前
轴重检测优选装备 浙江润鑫轴重检测仪稳定可靠
人工智能