掌桥专利:专业的专利平台
掌桥专利
首页

数据的加解密方法及装置、电子设备、计算机存储介质

文献发布时间:2023-06-19 11:26:00


数据的加解密方法及装置、电子设备、计算机存储介质

技术领域

本申请涉及数据安全技术领域,特别涉及一种数据的加解密方法及装置、电子设备、计算机存储介质。

背景技术

随着互联网技术的普及和快速发展,如今的互联网应用正在变得越来越庞大。同时,由于互联网安全问题愈发严重,各大企业对于安全性的要求也在不断提升,一些存入数据库的敏感信息必须得到加密,否则将造成极其严重的后果。业务逻辑的复杂和安全需求的提高,导致了庞大的业务逻辑,这就带来了更加频繁的数据库操作,进而带来大量的加密行为。而进行大量的加密行为必然会使得业务代码变得更加庞大、混乱和重复,即业务逻辑变得庞大,所以出现一个恶性循环。

为了解决这个矛盾,通常的做法是,将加解密行为代码提取成为公共类,然后在需要调用的地方进行调用,即可完成加密或解密,这种方法确实能够精简大量代码,但是并没有完全将业务代码与加解密行为的代码分离,所以所需的代码的也相对较多,因此没有很好的解决现有的上述的矛盾。

发明内容

基于上述现有技术的不足,本申请提供了一种数据的加解密方法及装置、电子设备、计算机存储介质,以解决现有技术中加解密方式的代码量相对较大的问题。

为了实现上述目的,本申请提供了以下技术方案:

本申请第一方面提供了一种数据的加解密方法,包括:

在调用目标方法前,拦截所述目标方法的输入参数中的目标输入参数;其中,所述目标方法为预先定义的切点指定的方法;所述目标输入参数为被预设注解标记的输入参数;

调用预设加密算法对所述目标输入参数进行加密,得到加密参数;

将所述加密参数作为所述目标方法的输入参数,对所述目标方法进行调用;

拦截调用所述目标方法后返回的目标返回参数,并调用与所述预设加密算法对应的解密算法对所述目标返回参数进行解密;其中,所述目标返回参数为预先加密的,且被所述预设注解标记的返回参数;

返回解密后的所述目标返回参数。

可选地,在上述的数据的加解密方法,所述拦截所述目标方法的输入参数中的目标输入参数之前,还包括:

当需要调用待调用方法时,判断所述待调用方法的包名以及类名中是否分别包含对应的指定标识;

若判断出所述待调用方法的包名以及类名中分别包含对应的指定标识,则确定所述待调用方法为目标方法,并执行所述拦截所述目标方法的输入参数中的目标输入参数。

可选地,在上述的数据的加解密方法,所述用预设加密算法对所述目标输入参数进行加密,得到加密参数,包括:

通过加解密组件确定出所述目标输入参数中属于字符串的输入子参数,并调用所述预设加密算法对所述输入子参数进行加密,得到加密参数。

可选地,在上述的数据的加解密方法,所述调用与所述预设加密算法对应的解密算法对所述目标返回参数进行解密,包括:

通过所述加解密组件确定出所述目标返回参数中属于字符串的返回子参数,并调用与所述预设加密算法对应的解密算法对所述返回子参数进行解密。

本申请第二方面提供了一种数据的加解密装置,包括:

第一拦截单元,用于在调用目标方法前,拦截所述目标方法的输入参数中的目标输入参数;其中,所述目标方法为预先定义的切点指定的方法;所述目标输入参数为被预设注解标记的输入参数;

加密单元,用于调用预设加密算法对所述目标输入参数进行加密,得到加密参数;

调用单元,用于将所述加密参数作为所述目标方法的输入参数,对所述目标方法进行调用;

第二拦截单元,用于拦截调用所述目标方法后返回的目标返回参数;

其中,所述目标返回参数为预先加密的,且被所述预设注解标记的返回参数;

解密单元,用于调用与所述预设加密算法对应的解密算法对所述目标返回参数进行解密;

返回单元,用于返回解密后的所述目标返回参数。

可选地,在上述的数据的加解密装置,还包括:

判断单元,用于当需要调用待调用方法时,判断所述待调用方法的包名以及类名中是否分别包含对应的指定标识;

确定单元,用于在所述判断单元判断出所述待调用方法的包名以及类名中分别包含对应的指定标识时,确定所述待调用方法为目标方法,并由所述第一拦截单元执行所述拦截所述目标方法的输入参数中的目标输入参数。

可选地,在上述的数据的加解密装置,所述加密单元,包括:

加密子单元,用于通过加解密组件确定出所述目标输入参数中属于字符串的输入子参数,并调用所述预设加密算法对所述输入子参数进行加密,得到加密参数。

可选地,在上述的数据的加解密装置,所述解密单元,包括:

解密子单元,用于通过所述加解密组件确定出所述目标返回参数中属于字符串的返回子参数,并调用与所述预设加密算法对应的解密算法对所述返回子参数进行解密。

本申请第三方面提供了一种电子设备,包括:

一个或多个处理装置;

存储器,其上存储有一个或多个程序;

当所述一个或多个程序被所述一个或多个处理装置执行时,使得所述一个或多个处理装置实现如上述任意一项所述的数据的加解密方法。

本申请第四方面提供了一种存储介质,用于存储程序,所述程序被执行时,用于实现如上述任意一项所述的数据的加解密方法。

本申请提供的数据的加解密方法,通过在调用预先定义的切点指定的方法时,拦截目标方法的输入参数中被预设注解标记的目标输入参数。然后,通过执行切面的通知方法来调用预设加密算法对目标输入参数进行加密,得到加密参数。从而可以将加密参数作为目标方法的输入参数,对目标方法进行调用。并且,拦截调用目标方法后返回的被预设注解标记的目标返回参数,然后同样通过执行切面的通知方法来调用与加密算法对应的解密算法对目标返回参数进行解密,最终返回解密后目标方法参数,从而基于切面编程的思想,实现了对数据的加解密,将重复的加解密与业务完全分离,从而可以极大的简化代码。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种数据的加解密方法的流程图;

图2为本申请另一实施例提供的另一种数据的加解密方法的流程图;

图3为本申请另一实施例提供的加解密组件对数据进行加密的流程图;

图4为本申请另一实施例提供的一种数据的加解密装置的结构示意图;

图5为本申请另一实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本申请提供了一种数据的加解密方法,以解决现有技术中加解密方式的代码量相对较大的问题。

首先需要说明的是,本申请提供的数据的加解密方法基于面向切面编程方式来实现,将多次重复的加解密行为,抽象为一个切面,将切面与业务代码实现完全分离,所以通过引入面向切面编程框架就可以自动完成全部加解密行为,从而可以实现业务逻辑的独立性和加解密行为的复用,不需要存在过多的代码逻辑。

可选地,可以依赖现有的AspectJ框架和spring-aop机制实现本申请提供的数据的加解密方法。具体的,为了使得后续定义为切面发挥作用,可以先引入两个框架的依赖。例如,具体可以引入“org.aspectj:aspectjrt:1.6.12”和“arg.springframework.boot:spring-boot-starter-aop”两个依赖。其中,第一个依赖为实现切面编程的核心框架,另一个则为Sping框架对于切面编程的支持。然后,可以定义注解,例如可以定义为“@Secret”,该注解用于为待加密的参数,以及待解密的参数做标记,让切面可以识别到需要加解密的参数。

可选地,可以通过加解密组件对参数进行加解密,所以可以定义加密组件,使其可以调用加密方法“encryptStr()”对字符串进行加密,以及调用解密方法“decryptStr()”完成对字符串的解密。然后就是引入具体的加密算法,从而在调用解密方法时,利用引入的加密算法进行加密。例如,可以引入加密算法SM4,或者是AES等其他的对称加密算法。

最后,需要定义切面。切面主要分为切点和通知方法两个部分,切点可用于通知所要织入的一个或者多个目标方法,即负责定义在何处执行通知中的代码,在本申请中具体为在调用目标方法前。通知方法则主要负责定义切面要做什么以及何时去做,在本申请中即为何时调用加解密组件进行加密和机密。需要说明的是,切点与通知是密不可分,但是为了使得本申请提供的方法在使用时更具灵活性。所以可选地,将切点与通知方法的代码做分离,具体为,可以先定义通知方法实现类(SecretAop),该类具体可以只有一个方法:crypt(ProceedingJoinPointjoinPoint)。该方法的主要核心代码为“Objectproceed=joinPoint.proceed(args)”,其主要作用为调用原方法,即回到目标方法中执行其全部代码。所以,通过这种方式,可以在目标方法调用前对其输入的参数进行加密,然后在执行该方法后,对目标方法输出的参数进行解密。

然后可以定义切面类(SecretAopImpl)。需说明的是,该切面类继承了上述的通知方法实现类,所以可以使用通知方法实现类的所有方法。具体的,可以在切面类中的切点,即注解“@Around”下编辑有调用通知方法的代码,从而实现了方法实现与切点代码的分离。其中,切点中包含切点函数,而切点函数中包含方法的过滤条件,即切点函数用于实现对方法的过滤,从而过滤得到目标方法。例如,切点函数的具体格式可以是:execution(修饰符、返回类型、方法名(参数类型)异常类型)。

基于上述准备工作,本申请实施例提供了一种数据的加解密方法,如图1所示,具体包括以下步骤:

S101、在调用目标方法前,拦截目标方法的输入参数中的目标输入参数。

其中,目标方法为预先定义的切点指定的方法,即目标方法并不是指代任意一个可被调用的方法,而是指代预设定义的切点指定的方法中的方法,即指代特定的方法。可选地,映射器(Mapper)用于向数据库传递参数并获得返回,是实现业务逻辑的重要一环,所以映射器(Mapper)也是目标方法的载体。

需要说明的是,并不是所有的参数都需要进行加密,所以本申请实施例中,通过自定义的注解“@Secret”对需要进行加密的参数进行标记,从而可以根据注解识别出需要加密的参数,即目标输入参数为被预设注解标记的输入参数。具体的可以是直接标记参数,也可以是标记字段,而位于该字段中的参数即为被标记的参数。

具体的由于切点定义了在调用目标方法时,进行加解密操作,所以在准备调用目标方法前,先拦截目标方法的输入参数被注解标记的参数,即拦截目标输入参数。

S102、调用预设加密算法对目标输入参数进行加密,得到加密参数。

具体的,通过执行切面的通知方法,实现对预设加密算法的调用,从而通过预设加密算法对目标输入参数进行加密,得到加密参数,然后将加密参数返回给目标方法。

S103、将加密参数作为目标方法的输入参数,对目标方法进行调用。

需要说明的是,由于仅对目标方法的输入参数中的需要加密的目标输入参数进行加密,而在调用目标方法时需要所有的输入参数,即在调用目标方法时,未加密的输入参数也同样需要作为目标方法的输入参数。因此,具体为将加密参数调换输入参数中相应的目标输入参数,然后基于替换后的所有输入参数对目标方法进行调用。

S104、拦截调用目标方法后返回的目标返回参数,并调用与预设加密算法对应的解密算法对目标返回参数进行解密。

其中,目标返回参数为预先加密的,且被预设注解标记的返回参数。同样,可以是仅有部分返回的参数被加密了,需要进行解密,所以本申请实施例中对于解密的返回参数同样的,通过预设注解进行标记,从而可以从执行目标方法后所返回的所有参数中拦截被标记的目标返回参数。然后,通过调用切面的通知方法,从而调用与预设加密算法对应的解密算法对目标返回参数进行解密。需要说明的是,本申请实施例采用的加密算法为对称加密算法,所以在步骤S102中加密算法和步骤S104的解密算法可以认为是统一加密算法中的加密部分和解密部分。

S105、返回解密后的目标返回参数。

本申请实施例提供的数据的加解密方法,通过在调用预先定义的切点指定的方法时,拦截目标方法的输入参数中被预设注解标记的目标输入参数。然后,通过执行切面的通知方法来调用预设加密算法对目标输入参数进行加密,得到加密参数。从而可以将加密参数作为目标方法的输入参数,对目标方法进行调用。并且,拦截调用目标方法后返回的被预设注解标记的目标返回参数,然后同样通过执行切面的通知方法来调用与加密算法对应的解密算法对目标返回参数进行解密,最终返回解密后目标方法参数,从而基于切面编程的思想,实现了对数据的加解密,将重复的加解密与业务完全分离,从而可以极大的简化代码。

本申请另一实施例提供了另一种数据的加解密方法,如图2所示,包括以下步骤:

S201、实时监测当前方法调用状态。

具体的,当监测到需要调用待调用方法时,执行步骤S202。

S202、判断待调用方法的包名以及类名中是否分别包含对应的指定标识。

具体的,本申请实施例中,目标方法主要承载于Maaper中,所以具体的切点函数可以通过判断待调用方法的包名是是否为“com.travelsky”开头,以及类名是否带有“Mapper”,确定待调用方法是否为目标方法。其中,若判断出待调用方法为目标方法,则执行步骤S203。若判断出待调用方法不属于目标方法,则可正常的直接调用待调用方法。

S203、确定待调用方法为目标方法,并拦截目标方法的输入参数中的目标输入参数。

其中,目标方法为预先定义的切点指定的方法。目标输入参数为被预设注解标记的输入参数。

需要说明的是,步骤S203的具体实施过程可相应地参考步骤S101的具体实施过程,此处不再赘述。

S204、通过加解密组件确定出目标输入参数中属于字符串的输入子参数,并调用预设加密算法对输入子参数进行加密,得到加密参数。

需要说明的是,目标方法的输入参数并不一定是单个的字符串参数,其有可能为集合或者是数组等,所以目标输入参数其实可以理解为一个Java对象。所以需要确定出目标输入参数中数据类型属于字符串的输入子参数,然后再对其进行加密。

本申请实施例中,具体通过执行切面的通知方法来调用加解密组件,而将目标输入参数作为加解密组件的传入对象,从而由加解密组件调用加密算法对传入对象进行加密。

加密组件的加密过程为递归加密,具体的加密过程可以如图3所示,先判断传入对象是否为空,若传入对象不为空,则判断传入对象是否为集合。若传入对象为集合,则循环遍历其中的每个节点,判断每个节点是否为字符串。需要说明的是,其中的节点指的是组成当前的传入对象的元素,而该元素可能是字符串,也可能也是一个集合,所以需要判断每个节点是否为字符串。若该节点不为字符串,则将该节点作为传入对象,单独执行图3所示的流程,但是若该节点下没有组成元素,则结束对该节点的加密过程。若判断该节点为字符串,则调用加密方法对该节点进行加密。若判断出传入对象不属于集合,则判断传入对象是否为映射参数,即该参数对应有一个或多个参数。若判断出传入对象为映射参数,则同样循环遍历其中的每个节点,判断每个节点是否为字符串,并且后续步骤也与判断为集合时一致,具体可以参见图3,所以此处不再赘述。若判断出传入对象不属于映射参数,则判断传入对象是否为数组,若判断出该传入对象为数组,则同样循环遍历其中的每个节点,判断每个节点是否为字符串,并且后续步骤也与上两种情况执行步骤一致,具体可以参见图3,所以此处不再赘述。

S205、将加密参数作为目标方法的输入参数,对目标方法进行调用。

需要说明的是,步骤S205的具体实施过程可相应地参考步骤S103的具体实施过程,此处不再赘述。

S206、拦截调用目标方法后返回的目标返回参数。

其中,目标返回参数为预先加密的,且被预设注解标记的返回参数。

S207、通过加解密组件确定出目标返回参数中属于字符串的返回子参数,并调用与预设加密算法对应的解密算法对返回子参数进行解密。

具体通过执行切面的通知方法来调用加解密组件,而将目标返回参数作为加解密组件的传入对象,从而由加解密组件调用加密算法对传入对象进行加密。

需要说明的是,具体的解密过程与图3所示的加密过程一样,仅是传入对象变更为目标返回参数,而调用加密方法进行加密变为调用解密算法对字符串进行解密。

S208、返回解密后的目标返回参数。

需要说明的是,附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

并且,在上述实施方式中,客户端、服务器可以利用诸如超文本传输协议(HyperText TransferProtocol,HTTP)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,adhoc端对端网络),以及任何当前已知或未来研发的网络。

其中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本申请实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。

本申请第二方面提供了一种数据的加解密装置,如图4所示,包括以下单元:

第一拦截单元401,用于在调用目标方法前,拦截所述目标方法的输入参数中的目标输入参数。

其中,所述目标方法为预先定义的切点指定的方法;所述目标输入参数为被预设注解标记的输入参数。

加密单元402,用于调用预设加密算法对所述目标输入参数进行加密,得到加密参数。

调用单元403,用于将所述加密参数作为所述目标方法的输入参数,对所述目标方法进行调用。

第二拦截单元404,用于拦截调用所述目标方法后返回的目标返回参数。

其中,所述目标返回参数为预先加密的,且被所述预设注解标记的返回参数。

解密单元405,用于调用与所述预设加密算法对应的解密算法对所述目标返回参数进行解密。

返回单元406,用于返回解密后的所述目标返回参数。

可选地,在本申请另一实施例提供的数据的加解密装置中,还进一步包括以下单元:

判断单元,用于当需要调用待调用方法时,判断所述待调用方法的包名以及类名中是否分别包含对应的指定标识。

确定单元,用于在所述判断单元判断出所述待调用方法的包名以及类名中分别包含对应的指定标识时,确定所述待调用方法为目标方法,并由所述第一拦截单元执行所述拦截所述目标方法的输入参数中的目标输入参数。

可选地,本申请另一实施例提供的数据的加解密装置中的加密单元,包括:

加密子单元,用于通过加解密组件确定出所述目标输入参数中属于字符串的输入子参数,并调用所述预设加密算法对所述输入子参数进行加密,得到加密参数。

可选地,本申请另一实施例提供的数据的加解密装置中的解密单元,包括:

解密子单元,用于通过所述加解密组件确定出所述目标返回参数中属于字符串的返回子参数,并调用与所述预设加密算法对应的解密算法对所述返回子参数进行解密。

需要说明的是,本申请上述实施例提供的各个单元的具体工作过程可相应地参考上述方法实施例中相应的步骤的实施方式,此处不再赘述。描述于上述实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。

并且,上述实施例中上描述的各个单元的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。

本申请另一实施例提供一种电子设备,如图5所示,其示出了适于用来实现本公开实施例的电子设备500的结构示意图。其中,本公开实施例中的电子设备可以包括但不限于诸如台式计算机、笔记本电脑、平板电脑、车载终端等电子设备。

如图5所示,电子设备500包括一个或多个处理装置501,例如中央处理器、图形处理器等,以及包括存储器502,其上存储有一个或多个程序。其中一个或多个程序被一个或多个处理装置501执行时,使得一个或多个处理装置501实现如上述任意一个实施例提供的登机信息的生成方法。

可选地,电子设备还可以包括其他组成结构,同样参见图1,处理装置501、只读存储器ROM 502以及随机存取存储器RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器、扬声器、振动器等的输出装置507,包括例如磁带、硬盘等的存储装置506,以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

本申请另一实施例提供了一种计算机存储介质,用于存储程序,该程序被执行时,用于实现如上述任意一个实施例提供的数据的加解密方法。

需要说明的是,本申请上述的计算机存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机存储介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

根据本申请的一个或多个实施例,示例1提供了一种数据的加解密方法,包括:

在调用目标方法前,拦截所述目标方法的输入参数中的目标输入参数;其中,所述目标方法为预先定义的切点指定的方法;所述目标输入参数为被预设注解标记的输入参数。

调用预设加密算法对所述目标输入参数进行加密,得到加密参数。

将所述加密参数作为所述目标方法的输入参数,对所述目标方法进行调用。

拦截调用所述目标方法后返回的目标返回参数,并调用与所述预设加密算法对应的解密算法对所述目标返回参数进行解密;其中,所述目标返回参数为预先加密的,且被所述预设注解标记的返回参数。

返回解密后的所述目标返回参数。

可选地,在上述的数据的加解密方法,所述拦截所述目标方法的输入参数中的目标输入参数之前,还包括:

当需要调用待调用方法时,判断所述待调用方法的包名以及类名中是否分别包含对应的指定标识。

若判断出所述待调用方法的包名以及类名中分别包含对应的指定标识,则确定所述待调用方法为目标方法,并执行所述拦截所述目标方法的输入参数中的目标输入参数。

可选地,在上述的数据的加解密方法,所述用预设加密算法对所述目标输入参数进行加密,得到加密参数,包括:

通过加解密组件确定出所述目标输入参数中属于字符串的输入子参数,并调用所述预设加密算法对所述输入子参数进行加密,得到加密参数。

可选地,在上述的数据的加解密方法,所述调用与所述预设加密算法对应的解密算法对所述目标返回参数进行解密,包括:

通过所述加解密组件确定出所述目标返回参数中属于字符串的返回子参数,并调用与所述预设加密算法对应的解密算法对所述返回子参数进行解密。

虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

相关技术
  • 数据的加解密方法及装置、电子设备、计算机存储介质
  • 数据库数据加解密方法、装置、计算机设备和存储介质
技术分类

06120112922937