System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术公开一种方法,涉及数据加解密,具体地说是一种基于orm适配器的数据加解密方法。
技术介绍
1、目前现有的对数据加解密的操作,均放在业务处理代码流程中,对数据进行加密操作之后,再通过orm适配器与数据库进行交互存储,在数据读取时,通过orm适配器取出数据之后,再通过业务代码对数据进行解密操作,这种方法不仅需要编写大量的代码,且对于已经开发完毕,需要进行机密性改造的系统来说,需要对每个有增删改的业务操作部分,进行加解密的代码改造,开发成本大且修改原有业务代码逻辑不符合开放封闭原则。
技术实现思路
1、本专利技术针对现有技术的问题,提供一种基于orm适配器的数据加解密方法,通过对orm适配器进行拦截操作,将加解密操作放在orm适配器执行过程中进行,识别需要加解密的对象,实现数据的存储自动加密,读取自动解密操作,实现在开发人员业务逻辑的代码编写过程中加解密操作的透明化。
2、本专利技术提出的具体方案是:
3、本专利技术提供一种基于orm适配器的数据加解密方法,包括:
4、步骤1:分别使用注解对需加密的实体类及实体类的成员变量进行标识;
5、步骤2:分别使用注解对需解密的实体类及实体类的成员变量进行标识;
6、步骤3:使用拦截器拦截orm适配器:
7、步骤31:加密数据时,获取sql执行前的参数,对参数进行加密操作:判断参数类型,若为map类型参数或list类型参数则遍历map类型参数或list类型参数判断是否
8、步骤32:解密数据时,获取sql的执行结果,对参数进行解密操作:判断参数的结果集类型,若为list类型结果集,则判断结果集中第一个参数是否包含需解密实体类注解,是则判断需解密实体类的成员变量是否包含需解密注解,是则对需解密实体类和成员变量进行解密;若为其他类型结果集则判断结果集中参数是否包含需解密实体类注解,是则判断需解密实体类的成员变量是否包含需解密注解,是则对需解密实体类和成员变量进行解密。
9、进一步,所述的一种基于orm适配器的数据加解密方法中步骤31中orm适配器为mybatis-plus,加密数据时,通过拦截器使用@intercepts注解拦截mybatis-plus的parameterhandler类的setparameters成员函数,获取sql执行前setparameters的参数,对参数进行加密操作。
10、进一步,所述的一种基于orm适配器的数据加解密方法中步骤31中使用哈希函数设置哈希值对参数进行重复性校验,避免对参数重复加密。
11、进一步,所述的一种基于orm适配器的数据加解密方法中步骤32中orm适配器为mybatis-plus,解密数据时,通过拦截器@intercepts注解拦截mybatis-plus的resultsethandler类的handleresultsets成员函数,获取sql的执行结果,对参数进行解密操作。
12、本专利技术还提供一种基于orm适配器的数据加解密装置,包括注解管理模块、拦截模块,加密模块和解密模块,
13、注解管理模块分别使用注解对需加密的实体类及实体类的成员变量进行标识;
14、注解管理模块分别使用注解对需解密的实体类及实体类的成员变量进行标识;
15、拦截模块使用拦截器拦截orm适配器:
16、加密模块加密数据时,获取sql执行前的参数,对参数进行加密操作:判断参数类型,若为map类型参数或list类型参数则遍历map类型参数或list类型参数判断是否已加密操作过,若否则标记参数已操作并判断参数是否包含需加密实体类注解,是则判断需加密实体类的成员变量是否包含需加密注解,是则对需加密实体类和成员变量进行加密;若为其他类型参数则判断参数是否包含需加密实体类注解,是则判断需加密实体类的成员变量是否包含需加密注解,是则对需加密实体类和成员变量进行加密;
17、解密模块解密数据时,获取sql的执行结果,对参数进行解密操作:判断参数的结果集类型,若为list类型结果集,则判断结果集中第一个参数是否包含需解密实体类注解,是则判断需解密实体类的成员变量是否包含需解密注解,是则对需解密实体类和成员变量进行解密;若为其他类型结果集则判断结果集中参数是否包含需解密实体类注解,是则判断需解密实体类的成员变量是否包含需解密注解,是则对需解密实体类和成员变量进行解密。
18、进一步,所述的一种基于orm适配器的数据加解密装置的加密模块拦截的orm适配器为mybatis-plus,加密数据时,通过拦截器使用@intercepts注解拦截mybatis-plus的parameterhandler类的setparameters成员函数,获取sql执行前setparameters的参数,对参数进行加密操作。
19、进一步,所述的一种基于orm适配器的数据加解密装置的加密模块使用哈希函数设置哈希值对参数进行重复性校验,避免对参数重复加密。
20、进一步,所述的一种基于orm适配器的数据加解密装置的解密模块拦截的orm适配器为mybatis-plus,解密数据时,通过拦截器@intercepts注解拦截mybatis-plus的resultsethandler类的handleresultsets成员函数,获取sql的执行结果,对参数进行解密操作。
21、本专利技术的有益之处是:
22、为系统机密性改造提供了解决方案,无需修改原有业务代码逻辑,减少开发人员工作量的同时,保证了业务系统的开放封闭原则;
23、为系统定义了统一的加解密操作,避免了对同一实体类对象的不同业务场景下加解密的重复操作;
24、可进一步对加密参数进行了重复性校验及遍历,避免了重复加密及加密不到位的情况,覆盖了更全面的业务场景。
本文档来自技高网...【技术保护点】
1.一种基于ORM适配器的数据加解密方法,其特征是包括:
2.根据权利要求1所述的一种基于ORM适配器的数据加解密方法,其特征是步骤31中ORM适配器为Mybatis-plus,加密数据时,通过拦截器使用@Intercepts注解拦截Mybatis-plus的ParameterHandler类的setParameters成员函数,获取sql执行前setParameters的参数,对参数进行加密操作。
3.根据权利要求1或2所述的一种基于ORM适配器的数据加解密方法,其特征是步骤31中使用哈希函数设置哈希值对参数进行重复性校验,避免对参数重复加密。
4.根据权利要求1所述的一种基于ORM适配器的数据加解密方法,其特征是步骤32中ORM适配器为Mybatis-plus,解密数据时,通过拦截器@Intercepts注解拦截Mybatis-plus的ResultSetHandler类的handleResultSets成员函数,获取sql的执行结果,对参数进行解密操作。
5.一种基于ORM适配器的数据加解密装置,其特征是包括注解管理模块、拦截
6.根据权利要求5所述的一种基于ORM适配器的数据加解密装置,其特征是加密模块拦截的ORM适配器为Mybatis-plus,加密数据时,通过拦截器使用@Intercepts注解拦截Mybatis-plus的ParameterHandler类的setParameters成员函数,获取sql执行前setParameters的参数,对参数进行加密操作。
7.根据权利要求5或6所述的一种基于ORM适配器的数据加解密装置,其特征是加密模块使用哈希函数设置哈希值对参数进行重复性校验,避免对参数重复加密。
8.根据权利要求5所述的一种基于ORM适配器的数据加解密装置,其特征是解密模块拦截的ORM适配器为Mybatis-plus,解密数据时,通过拦截器@Intercepts注解拦截Mybatis-plus的ResultSetHandler类的handleResultSets成员函数,获取sql的执行结果,对参数进行解密操作。
...【技术特征摘要】
1.一种基于orm适配器的数据加解密方法,其特征是包括:
2.根据权利要求1所述的一种基于orm适配器的数据加解密方法,其特征是步骤31中orm适配器为mybatis-plus,加密数据时,通过拦截器使用@intercepts注解拦截mybatis-plus的parameterhandler类的setparameters成员函数,获取sql执行前setparameters的参数,对参数进行加密操作。
3.根据权利要求1或2所述的一种基于orm适配器的数据加解密方法,其特征是步骤31中使用哈希函数设置哈希值对参数进行重复性校验,避免对参数重复加密。
4.根据权利要求1所述的一种基于orm适配器的数据加解密方法,其特征是步骤32中orm适配器为mybatis-plus,解密数据时,通过拦截器@intercepts注解拦截mybatis-plus的resultsethandler类的handleresultsets成员函数,获取sql的执行结果,对参数进行解密操作。
5.一种基于orm...
【专利技术属性】
技术研发人员:李琳悦,辛超,白玉坤,周政,苑文峰,
申请(专利权)人:浪潮智慧城市科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。