公开/公告号CN113139199A
专利类型发明专利
公开/公告日2021-07-20
原文格式PDF
申请/专利权人 广州欢网科技有限责任公司;
申请/专利号CN202110506169.4
发明设计人 张康;
申请日2021-05-10
分类号G06F21/60(20130101);H04L29/06(20060101);H04L9/06(20060101);
代理机构11471 北京细软智谷知识产权代理有限责任公司;
代理人涂凤琴
地址 510000 广东省广州市番禺区小谷围街中二横路22号A513-A514
入库时间 2023-06-19 11:54:11
技术领域
本发明涉及数据交互相关技术领域,具体涉及一种实现java和android交互时进行加解密的方法和设备。
背景技术
在java和android进行业务交互的时候,通常是需要进行特别严谨的操作的,上报接口的数据是必须要经过加密处理的,一般为了追求高效的并发能力都会去采用加密的方法,但是加密的方法在android端并不通用,直接拿给android进行调用的话会少报jar包,从而引起加密错误。
发明内容
有鉴于此,提供一种实现java和android交互时进行加解密的方法和设备,以解决相关技术中的问题。
本发明采用如下技术方案:
第一方面,本发明提供一种实现java和android交互时进行加解密的方法,包括:
获取预设加解密算法;
基于所述预设加解密算法和预设秘钥对待传输的数据进行加密;
获取加密的数据;
基于所述预设加解密算法和预设秘钥对所述加密的数据进行解密。
可选的,所述预设加解密算法由进行通讯的java端和android端中的任意一端发送。
可选的,获取预设加解密算法包括:
android端接收包含预设加解密算法的数据包;
android端通过反射获取到数据包中的预设加解密算法。
可选的,加密解密操作使用对称加密方法。
可选的,所述对称加密方法为AES加密算法。
可选的,还包括:
将加解密的方法进行封装整理,把代码都封装到工具类中,直接调用工具对代加密数据进行加密。
可选的,进行加密的过程包括
使用AES加密算法进行加密,之后使用base64对加密的数据进行转码。
相对应的,所述解密的过程包括:
使用base64对获取的加密的数据进行解码,之后使用AES加密算法进行解密。
第二方面,本申请提供一种实现java和android交互时进行加解密的设备,包括:
处理器,以及与所述处理器相连接的存储器;
所述存储器用于存储计算机程序,所述计算机程序至少用于执行本申请第一方面所述的实现java和android交互时进行加解密的方法。
本发明采用以上技术方案,在进行数据交互的过程中,java端和android端的加解密的方法具体如下:首先java端和android端获取预设加解密算法;之后,java端和android端的数据发送者基于所述预设加解密算法和预设秘钥对待传输的数据进行加密;ava端和android端的数据发送者中的数据接收者,获取加密的数据;基于所述预设加解密算法和预设秘钥对所述加密的数据进行解密。如此实现java和android交互时进行加解密的数据交互。本申请提供的方案中,首先为android端提供预设加解密算法,如此android端具有对应的加密算法,避免因为android进行调用的话会少报jar包,从而引起加密错误。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实现java和android交互时进行加解密的方法的方法的流程图;
图2是本发明实施例提供的一种实现java和android交互时进行加解密的方法的方法的具体流程图;
图3是本发明实施例提供的一种实现java和android交互时进行加解密的设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
首先对本发明实施例的应用场景进行说明,在java和android进行业务交互的时候,通常是需要进行特别严谨的操作的,上报接口的数据是必须要经过加密处理的,一般为了追求高效的并发能力都会去采用非对称加密的方法,但是加密的方法在android端并不通用,直接拿给android进行调用的话会少报jar包,从而引起加密错误。目前常用的做法如下:给接口开通https协议,这样的话会执行https加密,但是这样的话需要购买ca证书,而且是对所有跟android进行交互的接口都加密了,在一个是收费贵,通常我们是只需要对特别重要的数据进行加密,所有很多人就不会去选择这样的方法。本申请针对这一问题提出了对应的解决方案。
实施例
图1为本发明实施例提供的一种实现java和android交互时进行加解密的方法的流程图。参考图1,该方法具体可以包括如下步骤:
S101、获取预设加解密算法;
进一步的,所述预设加解密算法由进行通讯的java端和android端中的任意一端发送。也可以是由第三方提供的。
具体的,获取预设加解密算法包括:
android端接收包含预设加解密算法的数据包;
android端通过反射获取到数据包中的预设加解密算法。
进一步的,加密解密操作使用对称加密方法。
所述对称加密方法为AES加密算法。
在实际应用中,可以将加解密的方法进行封装整理,把代码都封装到工具类中,直接调用工具对代加密数据进行加密。
S102、基于所述预设加解密算法和预设秘钥对待传输的数据进行加密;
具体的,进行加密的过程包括:使用AES加密算法进行加密,之后使用base64对加密的数据进行转码。
S103、获取加密的数据;
S104、基于所述预设加解密算法和预设秘钥对所述加密的数据进行解密。
相对应的,所述解密的过程包括:使用base64对获取的加密的数据进行解码,之后使用AES加密算法进行解密。
本发明采用以上技术方案,在进行数据交互的过程中,java端和android端的加解密的方法具体如下:首先java端和android端获取预设加解密算法;之后,java端和android端的数据发送者基于所述预设加解密算法和预设秘钥对待传输的数据进行加密;ava端和android端的数据发送者中的数据接收者,获取加密的数据;基于所述预设加解密算法和预设秘钥对所述加密的数据进行解密。如此实现java和android交互时进行加解密的数据交互。本申请提供的方案中,首先为android端提供预设加解密算法,如此android端具有对应的加密算法,避免因为android进行调用的话会少报jar包,从而引起加密错误。
图2为本发明实施例提供的一种实现java和android交互时进行加解密的方法的据称他流程图。参考图2,该方法具体可以包括如下步骤:
首先将加密包分成两份提供给java和android,android通过反射获取到加密里面的加密方法类,让后在调用方法传入上报数据进行加密操作。
Java接口接受到数据请求之后,直接调用解密方法进行数据解密。
本次加密解密操作使用了响应速度极快的对称加密方法AES加密算法,并且底层在使用了base64进行了转码,使得数据更加的安全牢固。
将加解密的方法从新进行封装整理,把代码都封装到工具类中,直接调用进行加密,不需要再去依赖任何的jar包,解决android端因为缺少jar而无法使用加密的问题。
本申请提供的方案中在android将上报的数据调用方法进行加密,让后在java端将接受到接口上报数据进行解密,全程都是密文,保证了数据的安全性,且是安全不收费的。非常适合普通企业进行加密使用。
图3是本发明实施例提供的一种智能客服设备的结构示意图。本申请还提供一种实现java和android交互时进行加解密的设备,其特征在于,包括:
处理器31,以及与所述处理器相连接的存储器32;
所述存储器32用于存储计算机程序,所述计算机程序至少用于执行本申请所述的实现java和android交互时进行加解密的方法;
所述处理器31用于调用并执行所述存储器32中的所述计算机程序。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
机译: 软件生成设备,软件生成支持设备,软件生成方法,Java代码实现设备,软件以及Java Lyee计算方法(商标)语言的实现方法
机译: Java原生接口对Android进行反编码的方法
机译: Java原生接口对Android进行反编码的方法