vue+spirngboot前后端数据加解密(基于AES+RSA实现)
案例说明
案例只针对post请求
这里使用’Content-Type’: ‘application/x-www-form-urlencoded; charset=UTF-8’;为键值对的形式(非json)
AES加密数据,RAS加密AES的key
实现思路
前台首先请求非加密接口获取后台的公钥
前台在请求前生成自己的公钥和私钥,以及AES对称加密的key
使用前台生成的aeskey对数据进行加密
在请求前使用后台的公钥对前台的aeskey进行加密
将前台加密的data、aeskey和前台公钥一起传递给后台
后台使用私钥对前台的aeskey进行解密,再用这个aeskey去解密data
后台如果需要返回数据,这时使用后台生成的aeskey对数据进行加密
后端使用前台的公钥对aeskey进行加密
将aeskey和加密后的数据一起返还给前台,由前台使用私钥解密获得后端的aeskey
再使用后端的aeskey解密数据
通过这种方式,前后端交互的数据在传输过程中都经过了加密和解密的过程,保证了数据的安全性。
后台(Springboot)
在实际开发中,我们不应该在每一个接口都单独调用加密解密方法,这样太臃肿了。我们应该将重复代码进行抽离(事不过三,三则重构),这里我们可以使用AOP(切面)来进行处理。比如,我们可以定义一个切面类来统一处理加密解密的逻辑,然后在需要加密解密的方法上面声明该切面类,即可自动在方法执行前后执行加密解密的逻辑,避免了重复的代码。
仓库代码地址
吾乃代码搬运工,侵联删
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」