⑴ 如何对java请求的@requestbody前端加密后端解密
为确保前后端数据安全传输,本文将介绍如何在使用Spring Boot项目时,对通过@RequestBody接收的前端数据进行AES加密与后端解密的实现过程。首先,需要在Vue项目中引入`axios`和`crypto-js`两个库,其中`axios`用于发送请求,`crypto-js`用于加密和解密数据。
在Vue项目中创建`secret.js`文件,并编写如下代码:
在发送请求时,前端已准备好加密后的数据,并同时向后端发送请求。注意以下几点:
在后端处理加密数据时,使用`hutool`工具包进行解密。
实验结果显示,前端与后端之间数据交换顺畅,且加密与解密过程准确无误。请尝试使用以下链接快速学习Spring Boot 3.x实战技术:
此外,推荐以下高质量的学习资源:
⑵ 前后端交互数据加解密
本文提供了一种前后端交互数据的加解密方法,主要涉及了AES和RSA两种加密方式。
AES加密是一种对称式加密,即加密和解密所需秘钥是相同的。后端生成一组秘钥,并利用该秘钥加密数据,然后发给前端,同时也需要把秘钥发送给前端,这样前端才能解密。这样就会有风险,一旦秘钥被泄露,你的加密将不存在任何意义。同时,相比RSA加密来说,好处是不会限制加密字符串的长度。
RSA加密,是一种非对称式加密,相比AES加密,这个就安全多了。后端生成一对秘钥,自己拿着私钥,公钥可以公开。这样前端拿公钥进行加密,后端拿私钥进行解密,私钥掌握在自己手里,被泄露的风险就小了很多。当然也有不好的地方,就是被加密字符串的长度不能过长,1024的秘钥只能加密117字节以内的明文,这就比较尴尬了,可能稍微长一点的数据就会超出了,当然可以通过2048或者4096的秘钥来延长加密长度,但总会被超出。所以适合需要加密长度不长的数据,最好是已知长度的数据,这样 就不会因长度问题报错。
RSA+AES混合加密,即后端通过RSA算法生成一对公私钥,并把公钥提供给前端。前端通过AES算法生成密钥,利用公钥进行加密并送给后端,后端根据私钥进行解密,得到与前端相同的AES密钥。然后,前后端就可以利用AES密钥对称加密进行数据交互。
详细步骤如图所示。
RSA+AES混合加密,结合了两种加密方式的优点。另外,前端每次启动都会随机生成AES密钥,后端增加token失效机制(前端设置了定时任务请求token),增加了前后端数据交互的安全性。
https://www.cnblogs.com/huanzi-qch/p/10913636.html
https://blog.csdn.net/weixin_38342534/article/details/94582656