一种基于Android平台通讯接口的加密保护方法技术

技术编号:13324585 阅读:81 留言:0更新日期:2016-07-11 12:58
本发明专利技术公开了一种基于Android平台通讯接口的加密保护方法,属于数据加密领域,方法包括:Java程序向服务器端发起通讯请求之前,向基于C语言开发的加密库提供包括通讯接口报文所需的输入参数的特定格式的字符串;加密库对接收到的字符串进行解析;解析成功后校验输入参数的合法性,如果输入参数符合对应接口报文的拼接规则,将输入参数拼接为明文报文;加密库对明文报文加密后,返回加密的通讯报文数据到Java程序;Java程序获取加密的通讯报文数据之后,向服务器端发起通讯请求。本发明专利技术实现了有效保护通讯接口安全性的同时,提高了数据加密程序的执行效率。

【技术实现步骤摘要】

本专利技术涉及数据加密
,具体涉及。
技术介绍
随着Android智能手机的普及,基于Android平台开发的应用也越来越多。由于Android系统的大部分应用是运行在dalvik虚拟机上的Java程序,众所周知,Java程序很容易被反编译,且执行效率不高。如果一些核心的代码放在Java层将面临反编译后的代码泄露的风险。利用Java本地调用技术把核心算法转向C层后仍需要对Java层和C层之间的交互过程进行保护,因为Java层不受保护,黑客可以通过仿造身份去访问C层,获得数据。因此,程序的安全性和执行效率一直是Android程序开发需要解决的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的基于Android平台通讯接口的加密保护方法,通讯时对报文进行加密。依据本专利技术的一个方面,提供了,其特征在于,包括以下步骤:Java程序向服务器端发起通讯请求之前,向基于C语言开发的加密库提供包括通讯接口报文所需的输入参数的特定格式的字符串;所述加密库对接收到的所述特定格式的字符串进行解析;解析成功后校验输入参数的合法性,如果输入参数符合对应接口报文的拼接规贝IJ,将所述输入参数拼接为明文报文;所述加密库对所述明文报文加密后,返回加密的通讯报文数据到Java程序;Java程序获取所述加密的通讯报文数据之后,向所述服务器端发起通讯请求。进一步地,所述向基于C语言开发的加密库提供包括通讯接口报文所需的输入参数的特定格式的字符串的步骤中具体包括: Java程序将通讯接口报文所需的输入参数、混淆参数和对应接口参数拼接规则标识按照自定义规则,添加连接符,组织生成特定格式的字符串;将所述特定格式的字符串传入到基于C语言开发的加密库的数据加密接口。进一步地,所述加密库对接收到的所述特定格式的字符串进行解析的步骤中具体包括:所述加密库接收到Java程序传入的所述特定格式的字符串之后,根据内部定义的字符串拼接规则,进行解析;如果解析失败,则返回错误信息到Java程序;如果解析成功,则过滤掉所述混淆参数,获取拼接报文所需的所述输入参数和所述对应接口参数拼接规则标识。进一步地,所述解析成功后校验输入参数的合法性,如果输入参数符合对应接口报文的拼接规则,将所述输入参数拼接为明文报文步骤具体包括:根据所述接口参数拼接规则标识,校验所述输入参数的合法性;如果所述输入参数符合对应接口报文的拼接规则,则按照所述拼接规则定义的接口报文格式,将所述输入参数拼接为明文报文;如果所述输入参数校验不通过,则返回错误信息到Java程序。更进一步地,所述加密库对所述明文报文加密后,返回加密的通讯报文数据到Java程序的步骤具体包括:所述加密库中生成随机对称密钥,对所述明文报文使用对称加密算法进行加密,生成加密数据A ;所述加密库中利用公钥加密算法对所述对称密钥进行加密,生成密钥加密数据B ;所述加密库将所述加密数据A和所述密钥加密数据B组合生成通讯报文加密数据C,将所述加密数据C返回到Java程序。本专利技术具有以下有益效果:本专利技术提出了,将Android应用中通讯接口参数拼接规则和采用的加密算法部分封装成加密库,采用C语言实现,增加了反解难度,对于对通讯接口格式有较高安全性需求的系统有较高实用价值。此外,数据加密部分采用C语言开发,相比Java代码实现,提高了程序的执行效率。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。显而易见地,下面描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术实施例一的基于Android平台通讯接口的加密保护方法流程图;图2示出了根据本专利技术实施例二的基于Android平台通讯接口的加密保护方法流程图;图3示出了基于本专利技术实施例二的基于Android平台通讯接口的加密保护方法中加密算法实现流程图。【具体实施方式】下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。需要说明的是,在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可以理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名词的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”或“包括”为一开放式用语,故应解释成“包含但不限定于”。说明书后续描述为实施本专利技术的较佳实施方式,然所述描述乃以说明书的一般原则为目的,并非用以限定本专利技术的范围。本专利技术的保护范围当视所附权利要求所界定者为准。Android 程序运行在 dalvik 虚拟机中,NDK (全称是 Native Development Kit)允许用户使用类似C/C++之类的原生代码语言执行部分程序。Android NDK是在SDK前面又加上了 “原生”二字,因此又被Google称为“NDK”。NDK包括了:从C/C++生成原生代码库所需要的工具和build files ;将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(applicat1n packages files,即.apk 文件)中;支持所有未来Android平台的一系列原生系统头文件和库。为便于对本专利技术实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个附图并不构成对本专利技术实施例的限定。实施例一、基于Android平台通讯接口的加密保护方法。图1为本专利技术实施例一的基于Android平台通讯接口的加密保护方法流程图,如图1所示,本专利技术实施例包括以下步骤:...

【技术保护点】
一种基于Android平台通讯接口的加密保护方法,其特征在于,包括以下步骤:Java程序向服务器端发起通讯请求之前,向基于C语言开发的加密库提供包括通讯接口报文所需的输入参数的特定格式的字符串;所述加密库对接收到的所述特定格式的字符串进行解析;解析成功后校验输入参数的合法性,如果输入参数符合对应接口报文的拼接规则,将所述输入参数拼接为明文报文;所述加密库对所述明文报文加密后,返回加密的通讯报文数据到Java程序;Java程序获取所述加密的通讯报文数据之后,向所述服务器端发起通讯请求。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱兴熊林欣马雁陈星宇郭欣林震
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1