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 攻击,保护后端资源和控制成本。
相关推荐
糯米导航3 小时前
AI 视觉回归实战:截图对比不是“找不同”,如何让智能差异分析真正服务 UI 质量
人工智能·ui·回归
科技圈观察3 小时前
2026年好伴AI医疗专用大模型应用梳理与梯队参考
人工智能
jkyy20144 小时前
深耕AI健康医疗数据智库,赋能企业构建主动健康管理新生态
大数据·人工智能·健康医疗
cd_949217214 小时前
3D角色自动绑骨怎么做?用V2Fun完成建模、绑定、动作和导出
人工智能·3d
瑞禧生物tech4 小时前
SH-PEG-Biotin巯基-聚乙二醇-生物素 HS-PEG-Bio 深度解析
人工智能
QYR-分析4 小时前
机器人安全控制器行业高速扩容 本土替代迎来全新发展窗口期
人工智能·安全·机器人
冬奇Lab5 小时前
MCP 系列(06):MCP vs Function Calling——用数据说话的选型指南
人工智能
冬奇Lab5 小时前
每日一个开源项目(第159篇):Vibe-Trading - 用自然语言做量化研究,AI 驱动的个人交易 Agent
人工智能·开源·资讯
AI大模型-小雄5 小时前
2026 年 7 月国内怎么开通 ChatGPT Pro?5x / 20x 区别、适合人群与避坑指南
人工智能·gpt·chatgpt·ai编程·开发工具·codex·chatgpt pro
快乐非自愿5 小时前
AI低代码破局:数字化降本增效的核心逻辑与商业落地
人工智能·低代码