Spring Cloud Gateway实现了请求的解密和响应的加密,主要使用的是Hutool工具类中的AES加密算法。这种加密方式不仅用于请求数据的解密,还用于响应数据的加密。通过在网关中添加过滤器GlobalFilter,可以实现这一功能。具体来说,Spring Cloud Gateway的加密和解密流程包括以下几个步骤:
- 前端获取RSA公钥:首先,前端客户端通过访问一个特定的接口从服务器获取RSA公钥。
- 对称密钥加密:客户端生成一个随机的对称密钥,然后使用服务器的RSA公钥对这个对称密钥进行加密。
- 发送加密的对称密钥:客户端将加密后的对称密钥发送到服务器。
- 对称密钥解密:服务器使用自己的RSA私钥解密客户端发送的加密对称密钥,从而得到原始的对称密钥。
- 加密通信:从这一步开始,客户端和服务器都会使用这个对称密钥来加密和解密他们之间的通信。这包括URL的动态加密、请求和响应的加密解密,以及数字签名的验证等。
- 响应数据加密:在响应数据发送回客户端之前,使用相同的对称密钥对响应数据进行加密,确保数据在传输过程中的安全性。
通过这种方式,Spring Cloud Gateway确保了客户端和服务器之间的通信安全,防止数据被截获或篡改,同时也提供了一个有效的机制来验证通信双方的身份。
AES方法:CSDN
Gateway响应数据加密:如下,只有返回数据为json才加密,对于下载还是返回的流这些都不做处理加密;
package com.puwang.springcloud.g