# spring-gateway-rsa **Repository Path**: tlgen_1/spring-gateway-rsa ## Basic Information - **Project Name**: spring-gateway-rsa - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-15 - **Last Updated**: 2024-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 客户端-服务端接口加解密流程 1.第一次请求, 客户端调用服务端获取公钥接口,后端生成一对公钥私钥,保存到服务端,同时把公钥返回到客户端; 2.客户端随机生成一个密钥,使用服务端返回的公钥进行加密该密钥,通过工具类(服务调用放使用后端代码; 前端则使用 js 工具类)进行加密; 3.第二次请求, 将加密后的密文, 上送给服务端, 服务端使用自己的私钥(第 1 步服务端生成的私钥)进行解密, 解密成功后, 拿到密钥; -- 以上对客户端密钥的加解密传输流程属于非对称加密 RSA; 4.第三次请求, 客户端使用自己的密钥(第 2 步生成的随机密钥)对请求参数和请求地址进行 AES 对称加密; 5.将加密结果上送到服务端, 服务端使用解析成功出来的密钥 (第 3 步, 第二次请求的时候, 这里前端后端约定一个 uuid, 后端进行 redis 保存, 在这里通过 uuid 获取) 对该加密的请求进行解密, 如果解密成功, 说明请求内容密钥被篡改, 解析成功并能够拿到原始的明文请求内容; 6.解密成功, 使用原始请求才能继续可以往下调用。