内容简介:之前有写过一篇加密的文章主要是在Spring Boot中如何对接口的数据进行自动加解密操作,通过注解的方式来指定是否需要加解密。原理也很简单,通过Spring提供的RequestBodyAdvice和ResponseBodyAdvice就可以对请求响应做处理。
之前有写过一篇加密的文章 《 前后端API交互如何保证数据安全性 》 。
主要是在Spring Boot中如何对接口的数据进行自动加解密操作,通过注解的方式来指定是否需要加解密。
原理也很简单,通过Spring提供的RequestBodyAdvice和ResponseBodyAdvice就可以对请求响应做处理。
本来也是打算更新一下的,因为在Spring Cloud Zuul中也需要加解密,我的那个封装就用不了。
恰巧上周肥朝大佬跟我聊了下,提供了一些非常有用的建议,于是周六花了一天时间重构了一下加密的框架,不再以Spring Boot Starter的方式提供服务,直接是一个jar包,基于Servlet层面来对数据进行加解密处理。
相比之前的变化:
-
内置AES加密算法,可以配置不同的加密key
-
不再绑定Spring Boot,通过配置Filter即可使用加解密
-
Spring Cloud Zuul框架也可以支持
-
支持用户自定义加密算法
GitHub地址:https://github.com/yinjihuan/monkey-api-encrypt
示例代码:https://github.com/yinjihuan/monkey-api-encrypt/tree/master/encrypt-springboot-example
monkey-api-encrypt没有发布到Maven中央仓库,只发布到jitpack这个仓库,大家也可以自行下载源码打包传到自己公司的私服上。
自动加解密的好处
传统做法如下:
缺点是在每个业务方法中都要手动的去处理加解密的逻辑。
通过使用monkey-api-encrypt的话可以让开发人员不需要关注加解密的逻辑,比如:
上面的代码跟平常写的一模一样,没有加解密的逻辑,需要对数据做加解密逻辑的时候,只需要配置一个过滤器,然后指定哪些URI需要加解密即可。下面来学习下如何使用monkey-api-encrypt。
快速使用
下面以jitpack仓库示列
第一步:pom.xml中增加仓库地址
第二步:增加项目依赖
第三步:配置加解密过滤器(Spring Boot中配置方式)
-
EncryptionConfig EncryptionConfig是加解密的配置类,配置项目定义如下:
自定义加密算法
内置了AES加密算法对数据进行加解密操作,同时用户可以自定义算法来代替内置的算法。
自定义算法需要实现EncryptAlgorithm接口:
注册Filter的时候指定算法:
常见问题
1. Spring Cloud Zuul中如何使用?
使用方式和Spring Boot中一样,没区别。
2. 如果需要所有请求都做加解密处理怎么办?
默认不配置RequestDecyptUriList和ResponseEncryptUriList的情况下,就会对所有请求进行处理(拦截器指定范围内的请求)
3. Swagger测试接口的时候怎么处理?
可以开启调试模式,就不对请求做加解密处理,通过配置debug=true
4. RequestDecyptUriList和ResponseEncryptUriList能否支持/user/*模式匹配?
过滤器本身就有这个功能了,所以框架中是完全匹配相等才可以,可以通过过滤器的 registration.addUrlPatterns("/user/ ","/order/ ");来指定需要处理的接口地址。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- API加密框架原理解密
- API数据加密框架monkey-api-encrypt
- 配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架
- 加密原理详解:对称式加密 VS 非对称式加密
- 编码、摘要和加密(三)——数据加密
- 聊聊对称加密与非对称加密
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Computational Geometry
Mark de Berg、Otfried Cheong、Marc van Kreveld、Mark Overmars / Springer / 2008-4-16 / USD 49.95
This well-accepted introduction to computational geometry is a textbook for high-level undergraduate and low-level graduate courses. The focus is on algorithms and hence the book is well suited for st......一起来看看 《Computational Geometry》 这本书的介绍吧!