当前位置:

RSA+AES混合加密

访客 2024-01-15 1447 0


前言

在服务器与终端设备进行HTTP通讯时,常常会被网络抓包、反编译等技术得到HTTP通讯接口地址和参数。为了确保信息的安全,在生产中使用了很多种加密手段。现如今,RSAAES因加密技术高、安全系数高等优势,成为当今主流手段。2022年,为了提高毕业设计的难度,毫无疑问选择了数据加密(我的毕业设计就是信息管理系统-强烈推荐使用mybatis-plus代码生成器,后端代码就很简单了),在数据加密方案的选择中,经过大量的查询加密技术进行比较,选择了RSAAES方案。


一、AESRSA混合加密是什么?

RSA加密属于非对称加密,理解为由公钥推出私钥,公钥加密,私钥解密,这就是非对称加密。RSA加密最多117个字节,超过117个字节的数据就会报错,所以在RSAAES混合加密方案中,用RSA的公钥去加密AES的密钥。
AES加密属于对称加密,理解为公钥与私钥可以相互推出,在实际的加密中用AES密钥(AES密钥实际是一个并不是区分开公钥私钥)去进行加解密。AESRSA混合加密实际的流程是服务端-客户端数据加密传输流程:服务端AES密钥加密传输数据明文,RSA公钥加密AES密钥;客户端解密AES密钥密文,再用AES密钥解密数据密文,其客户端-服务端亦是如此。其流程如下图

*RSA、AES加密数学原理如果想深入的了解一下建议去B站看up主可厉害的土豆的视频(链接:https://www.bilibili.com/video/BV1YQ4y1a7n1

二、使用步骤

1.引入库

代码如下(示例):

服务端采用SpringBoot**POM依赖<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.47</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.11</version></dependency>

2.RASAES加密工具类

源代码我已经上传到阿里云(服务端链接:https://tanhua-zjd.oss-cn-beijing.aliyuncs.com/serviceDemo.zip;客户端:https://tanhua-zjd.oss-cn-beijing.aliyuncs.com/clientDemo.zip,点击链接直接下载)。
源代码因为涉及其它利益,所以只保留了加密的模块,客户端只保留了JS加密代码,没有实际样式。

RSAAES加密方案参考的该作者的RSAAES混合加密方案:
https://blog.csdn.net/qq_43248623/article/details/108423695


总结

LearningProcess:

Step1:了解RSAAES的安全性设计和加密逻辑;
Step2:了解RSA和AES加密原理,建议B站观看可厉害土豆的加密视频(链接在上面);
Step3:查阅RSA、AES、DES、CES、SSL签证等这几种加密方案之间的区别,以及安全性系数比较;
Step4:如果可以完成建议拓展一下客户端与服务端做一下请求拦截进行统一加密以及解密。

希望可以给你带来帮助!!!

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~