跨平台应用中数据处理方法、装置、电子设备和存储介质转让专利

申请号 : CN201711079831.2

文献号 : CN107895120B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王金童张乐

申请人 : 聚好看科技股份有限公司

摘要 :

本发明揭示了一种跨平台应用中数据处理方法、装置、电子设备和计算机可读存储介质。跨平台应用通过业务框架域、原生方法域搭建得到,所述方法包括:获得跨平台应用所请求的加密数据;在耦合于所述业务框架域的原生方法域中,通过原生方法对所述加密数据进行解密处理得到解密数据;控制所述原生方法域将所述解密数据回传至所述业务框架域;所述业务框架域内根据被回传的所述解密数据发起相应业务逻辑的执行。至此,便保证了跨平台应用中数据的安全,在由业务框架域的跨平台性能而使得所搭建的跨平台应用兼顾跨平台实现的同时,保证了所接收数据未发生泄漏、未被替换或者篡改。

权利要求 :

1.一种跨平台应用中数据处理方法,其特征在于,所述跨平台应用通过业务框架域、原生方法域搭建得到,所述方法包括:获得跨平台应用所请求的加密数据;

在耦合于所述业务框架域的所述原生方法域中,通过原生方法对所述加密数据进行解密处理得到解密数据,所述解密数据保存于所述原生方法域内,其中,通过所述业务框架域对所述原生方法域所暴露接口函数的调用,以及所述原生方法域对所述业务框架域内业务逻辑的回调实现所述原生方法域耦合于所述业务框架域;

控制所述原生方法域将所述解密数据回传至所述业务框架域;

所述业务框架域内根据被回传的所述解密数据发起相应业务逻辑的执行。

2.根据权利要求1所述的方法,其特征在于,所述获得跨平台应用所请求的加密数据之前,所述方法包括:根据所述业务框架域内业务逻辑的触发执行生成数据请求指令,所述数据请求指令用于获得所述加密数据。

3.根据权利要求1-2任一项所述的方法,其特征在于,所述在耦合于所述业务框架域的原生方法域中,通过原生方法对所述加密数据进行解密处理得到解密数据,包括:耦合于所述业务框架域的原生方法域内,被所述业务框架域调用的所述原生方法执行所述加密数据的解密处理,得到所述解密数据。

4.根据权利要求3所述的方法,其特征在于,所述获得跨平台应用所请求的加密数据,包括:所述业务框架域通过向原生方法域调用原生方法,使得被调用的所述原生方法发起服务器访问,向所述服务器请求数据;

接收所述服务器向原生方法域返回的加密数据,所述加密数据在所述业务框架域调用所述原生方法后执行解密处理。

5.根据权利要求3所述的方法,其特征在于,所述在耦合于所述业务框架域的原生方法域中,通过原生方法对所述加密数据进行解密处理得到解密数据之前,所述方法还包括:获得所述加密数据的业务框架域异步调用所述原生方法域内封装的数据解密接口函数,在所述数据解密接口函数被异步调用下,异步调用所述原生方法域内的数据请求接口;

通过所述数据请求接口将所述加密数据传送至所述数据解密接口函数。

6.根据权利要求5所述的方法,其特征在于,所述获得所述加密数据的业务框架域异步调用所述原生方法域内封装的数据解密接口函数,在所述数据解密接口函数被异步调用下,异步调用所述原生方法域内的数据请求接口,包括:所述业务框架域通过所获得加密数据创建实例对象;

通过所述业务框架域中配置的JavaScript Core引擎,为所述加密数据分配作用域,在所述作用域进行所述实例对象至原生方法对象之间的转换;

根据所述原生方法对象触发所述原生方法域内数据解密接口函数的异步调用,异步调用的所述数据解密接口函数通过异步调用数据请求接口访问原生方法对象中的加密数据。

7.根据权利要求1或2或4或5或6所述的方法,其特征在于,所述业务框架域为JavaScript域,在所述JavaScript域内根据所述解密数据发起相应业务逻辑的执行,包括:将所述解密数据传入所述JavaScript域中由JavaScript代码实现的业务逻辑,触发所述业务逻辑的执行。

8.一种跨平台应用中数据处理装置,其特征在于,所述跨平台应用通过业务框架域、原生方法域搭建得到,所述装置包括:获取模块,用于获得跨平台应用所请求的加密数据;

解密模块,用于在耦合于所述业务框架域的原生方法域中,通过原生方法对所述加密数据进行解密处理得到解密数据,所述解密数据保存于所述原生方法域内,其中,通过所述业务框架域对所述原生方法域所暴露接口函数的调用,以及所述原生方法域对所述业务框架域内业务逻辑的回调实现所述原生方法域耦合于所述业务框架域;

回传控制模块,用于控制所述原生方法域将所述解密数据回传至所述业务框架域;

业务执行模块,用于所述业务框架域内根据被回传的所述解密数据发起相应业务逻辑的执行。

9.一种电子设备,其特征在于,包括:

处理器;以及

存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现根据权利要求1至7中任一项所述的跨平台应用中数据处理方法。

10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据权利要求1至7中任一项所述的跨平台应用中数据处理方法。

说明书 :

跨平台应用中数据处理方法、装置、电子设备和存储介质

技术领域

[0001] 本发明涉及计算机应用技术领域,特别涉及一种跨平台应用中数据处理方 法、装置、电子设备和计算机可读存储介质。

背景技术

[0002] 互联网特别是移动互联网快速发展,智能手机、平板电脑等终端作为互联 网访问的入口而得到广泛使用,终端提供种类丰富的应用供用户选择、安全使 用。
[0003] 应用的代码所使用计算机语言的不同,必然会造成运行环境的不同。例如, 可以使用Java、Object-C、JavaScript等计算机语言开发跨平台应用,其中,由 Java计算机语言所编写Java代码实现的应用运行于Java虚拟机的宿主环境中。
[0004] 而对于跨平台应用,是实现跨平台开发,使得所开发的跨平台应用能够跨 平台运行,往往会使用特定的计算机语言,在所构建的应用框架通过特定计算 机语言形成的脚本实现自身业务逻辑。
[0005] 也就是说,跨平台应用是依赖于所在应用框架中特定计算机语言实现的业 务逻辑执行所需要的诸多处理过程。
[0006] 然而,在实现跨平台应用所在应用框架的计算机语言,例如,JavaScript计 算机语言,其代码实现中并不存在加密解密的算法处理,进而也无法防止所获 得的数据发生泄漏,甚至于发生数据被替换、伪造。跨平台应用从外部获得的 数据均是“透明”的,易于发生数据泄漏,无法保证数据。
[0007] 这是由实现跨平台应用的计算机语言所能够实现的算法决定的,也就是说, 实现跨平台应用所采用计算机语言的代码并不具备解密、校验等安全性处理数 据的能力。例如,在JavaScript计算机语言的代码中,所进行的JavaScript相关 的解析不存在解密等安全所相关的处理能力。
[0008] 由此可知,跨平台应用的实现并无法同时赋予安全所相关的处理能力,在 跨平台应用的实现中,如何保证所接收数据未发生泄漏,未被替换或者篡改, 相关技术尚无有效解决方案,成为跨平台应用中亟待解决的问题。

发明内容

[0009] 为了解决相关技术中不实施例中跨平台应用的实现能够兼顾保证所接收数 据未发生泄漏、未被替换或者篡改的技术问题,本发明提供了一种跨平台应用 中数据处理方法、装置、电子设备和计算机可读存储介质。
[0010] 一种跨平台应用中数据处理方法,所述跨平台应用通过业务框架域、原生 方法域搭建得到,所述方法包括:
[0011] 获得跨平台应用所请求的加密数据;
[0012] 在耦合于所述业务框架域的原生方法域中,通过原生方法对所述加密数据 进行解密处理得到解密数据;
[0013] 控制所述原生方法域将所述解密数据回传至所述业务框架域;
[0014] 所述业务框架域内根据被回传的所述解密数据发起相应业务逻辑的执行。
[0015] 一种跨平台应用中数据处理装置,所述跨平台应用通过业务框架域、原生 方法域搭建得到,所述装置包括:
[0016] 获取模块,用于获得跨平台应用所请求的加密数据;
[0017] 解密模块,用于在耦合于所述业务框架域的原生方法域中,通过原生方法 对所述加密数据进行解密处理得到解密数据;
[0018] 回传控制模块,用于控制所述原生方法域将所述解密数据回传至所述业务 框架域;
[0019] 业务执行模块,用于所述业务框架域内根据被回传的所述解密数据发起相 应业务逻辑的执行。
[0020] 一种电子设备,包括:
[0021] 处理器;以及
[0022] 存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所 述处理器执行时实现如前任一项所述的跨平台应用中数据处理方法。
[0023] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处 理器执行时实现如前任一项所述的跨平台应用中数据处理方法。
[0024] 本发明的实施例提供的技术方案可以包括以下有益效果:
[0025] 对于由业务框架域所搭建的跨平台应用,在获得所请求的加密数据之后, 业务框架域耦合的原生方法域内,通过原生方法对加密数据进行解密处理得到 解密数据,控制原生方法域将解密数据回传到业务框架域,使得业务框架域根 据解密数据而发起相应业务逻辑的执行,至此,便保证了跨平台应用中数据的 安全,在由业务框架域的跨平台性能而使得所搭建的跨平台应用兼顾跨平台实 现的同时,保证了所接收数据未发生泄漏、未被替换或者篡改。
[0026] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能 限制本发明。

附图说明

[0027] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明 的实施例,并于说明书一起用于解释本发明的原理。
[0028] 图1是根据一示例性实施例示出的一种跨平台应用中数据处理方法的流程 图;
[0029] 图2是根据图1对应实施例示出的对步骤110的细节进行描述的流程图;
[0030] 图3是根据另一示例性实施例示出的一种跨平台应用中数据处理方法的流 程图;
[0031] 图4是根据一示例性实施例示出的JavaScript域与原生方法域之间的逻辑实 现示意图;
[0032] 图5是根据一示例性实施例示出的跨平台应用与服务器之间交互的逻辑示 意图;
[0033] 图6是根据一示例性实施例示出的一种装置的框图;
[0034] 图7是根据一示例性实施例示出的一种跨平台应用中数据处理装置的框图。

具体实施方式

[0035] 这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描 述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。 以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方 式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一 致的装置和方法的例子。
[0036] 在一个示例性实施例中,本发明所涉及的实施环境,至少包括用户所使用 的终端设备。终端设备可以是台式电脑、笔记本电脑、智能手机和平板电脑等。
[0037] 终端设备安装并运行通过业务框架域,即各种跨平台移动应用开发框架使 用JavaScript计算机语言开发的跨平台应用,此跨平台应用通过JavaScript计算 机语言的JavaScript代码完成业务逻辑的部署,进而通过JavaScript代码实现的 业务逻辑,通过业务逻辑的执行来实现跨平台应用所具备的功能。
[0038] 跨平台应用的运行中,所获得的数据可以是加密数据,例如,通过所进行 的服务器访问而获得加密数据,此时将通过本发明所实现的数据处理方法,实 现JavaScript计算机语言所不具备的解密功能,进而得以使得保证数据安全的技 术能够引入到跨平台应用中,既保证跨平台性能的实现,又保证了数据安全。
[0039] 图1是根据一示例性实施例示出的一种跨平台应用中数据处理方法的流程 图。该实现跨平台应用中数据处理方法适用于前述实施环境的终端设备,跨平 台应用通过业务框架域、原生方法域搭建得到,并且业务框架域通过进行原生 方法的调用执行跨平台应用中数据的处理。
[0040] 如图1所示,该跨平台应用中数据处理方法,至少包括以下步骤。
[0041] 在步骤110中,获得跨平台应用所请求的加密数据。
[0042] 其中,业务框架域是提供的开发平台所架构的,跨平台应用由业务框架域 所搭建得到,进而实现所具备的功能和业务。为支持所发布的跨平台应用,业 务框架域支持一系列的服务和组件,例如,解析引擎、WebView组件,以用于 构建一个跨平台应用,进而在所构建的跨平台应用中实现列表、网格、文本框 和按钮,甚至内嵌的网页浏览器等基本的支撑功能,并且通过数据的交互而达 成自身与外部的交互。在一个示例性实施例的具体实现中,业务框架域基于 JavaScript代码实现。
[0043] 由此,可以理解,业务框架域作为跨平台移动跨平台应用开发框架,也将 是跨平台动态更新的JavaScript框架。在一个示例性实施例的具体实现中,业务 框架域是由React Native平台所实现的。
[0044] 应当理解,对于跨平台应用而言,业务框架域包含了其业务逻辑的全部实 现,跨平台应用所需实现的所有业务和功能,都在业务框架域内构建了所对应 的业务逻辑。后续步骤实现中涉及的原生方法域,则是所在操作系统的底层代 码实现,即所在操作系统所配置的内核和库的代码。业务框架域以及此业务框 架域所调用原生方法域内的原生方法,便构成了跨平台应用的代码实现。
[0045] 经由此业务框架域而搭建的跨平台应用,都是由此业务框架域内指定计算 机语言的代码开发实现,并运行于此业务框架域内。经由此业务框架域而搭建 的跨平台应用,其虽然通过业务框架域内业务逻辑的执行而实现自身页面的显 示以及业务、功能的实现,但是,在此业务逻辑的执行中,不可避免的存在着 获取外部所提供数据,例如,服务器所提供敏感数据的情况,在此情况下,跨 平台应用将获得所请求的加密数据。
[0046] 跨平台应用不会受限于终端设备的操作系统类型,保证其跨平台的运行跨 平台应用。在一个示例性实施例的具体实现中,跨平台应用适配于此业务框架 域,由存放于服务器的JavaScript代码信息和数据实现。
[0047] 不受限于所在终端设备操作系统类型的跨平台应用,如前所述的,也将由 于自身跨平台性能的代码实现,而无法在达成跨平台性能代码实现的业务框架 域内部署解密处理所相关的代码实现,并且所涉及的密钥等的传递,也是实现 跨平台性能的业务框架域所不支持的,故需要通过后续的步骤实现,使得受限 于业务框架域的跨平台应用也能够具备保证数据安全的能力。
[0048] 随着终端设备所安装跨平台应用的启动以及在此业务框架域内业务逻辑的 执行,在需要获得外部所提供的敏感数据时,将从外部获取跨平台应用所请求 的加密数据。加密数据是跨平台应用自身运行所需要数据被加密后的存在形式。 在一个示例性实施例中,跨平台应用通过与外部服务器之间数据交互得到加密 数据。
[0049] 在一个示例性实施例的具体实现中,在此步骤110之前,该跨平台应用中 数据处理方法,还包括:
[0050] 根据业务框架域内业务逻辑的触发执行生成数据请求指令,数据请求指令 用于获得加密数据。
[0051] 其中,跨平台应用的运行中,随着业务框架域内业务逻辑的触发执行,存 在着向外部服务器请求数据的需求,所请求的数据是服务器加密之后所返回的。 加密数据是对所返回数据中的每一字符加密而得到的。
[0052] 跨平台应用通过所生成的数据请求指令,发起服务器访问,进而获得服务 器随之返回的加密数据。
[0053] 在跨平台应用按照指定网络地址而进行的服务器访问中,将会接收到服务 器响应而返回的加密数据,跨平台应用作为运行于终端设备中的客户端,所获 得的加密数据实质是服务器封装并加密跨平台应用所请求数据而形成的。
[0054] 在一个示例性实施例中,可以理解的,跨平台应用的运行以及业务实现, 都必然涉及跨平台应用中页面的跳转切换,所请求的数据是填充于所跳转进入 页面的关键内容,也是跳转执行下一流程的关键,因此,在服务器向跨平台应 用的传输,以及其在跨平台应用中的存在,都存在着安全性保证的需求。
[0055] 如前所描述的,跨平台应用的业务逻辑被运行于业务框架域内,但是,对 于跨平台应用中服务器访问的发起,一方面是由业务框架域执行的,此时,业 务框架域内获得加密数据,需要借由业务框架域内置的通信机制与原生方法域 通信,执行原生方法域中接口函数的异步调用,以将加密数据传送至原生方法 域内处理;另一方面,跨平台应用中服务器访问的发起则是由耦合于业务框架 域的原生方法域执行,在此不进行限定,将根据实际运营的需要确定。
[0056] 跨平台应用运行中,经由业务框架域而发起的服务器访问是在业务框架域 所实现服务和组件的作用下进行的;经由原生方法域而执行的服务器访问,则 是业务框架域调用原生方法域接口函数,映射至对应的原生方法,借由原生方 法实现的服务器访问。
[0057] 在步骤130中,在耦合于业务框架域的原生方法域,通过原生方法对加密 数据进行解密处理得到解密数据。
[0058] 其中,原生方法域,与终端设备的操作系统相关,是指用于实现操作系统 底层的内核和库的代码。
[0059] 以安卓系统为例,原生方法域,形成各种原生方法,并且每一原生方法都 是由一系列的本地代码,即Native Code形成。本地代码是使用计算机语言,比 如C系语言(包括C/C++语言)编写的代码,用来在终端设备的处理器上运行, 由于是针对处理器编写形成的,因此编译后执行时具备非常好的执行效率。
[0060] 原生方法,即为本地(Native)方法(函数),是指对实现某特定功能(如 图像处理、加密解密、数据库或任意的扩展功能)的一系列本地代码,如前所 述的,原生方法与处理器相关,因此依赖于特定的平台执行。在一个示例性实 施例的具体实现中,原生方法以库文件的形式存储,以安卓系统为例,C/C++ 代码实现的本地方法存储于C/C++类库中。
[0061] 业务框架域和原生方法域之间互访,因此能够在业务框架域内跨平台应用 的运行中,实现原生方法域内形成原生方法的调用,进而为所获得的加密数据 进行解密,得到解密数据。业务框架域和原生方法域之间的互访是通过业务框 架域对原生方法域所暴露接口函数的调用,以及原生方法域对业务框架域内业 务逻辑的回调实现的。
[0062] 在另一个示例性实施例中,步骤130包括:耦合于业务框架域的原生方法 域内,被业务框架域调用的原生方法执行加密数据的解密处理,得到解密数据。
[0063] 其中,业务框架域与原生方法域之间,业务框架域将通过异步调用的进行 来借助于原生方法域所具备的处理能力,进而了达到节省时间,提高执行效率 的目的。
[0064] 原生方法域内对加密数据执行解密处理的原生方法包括封装了一系列解密 算法的接口函数,除此之外,由于涉及到数据的传输,因此,还将包括相应的 数据请求接口。
[0065] 不难理解的,跨平台应用中代码信息用于实现业务逻辑的执行,所获得的 加密数据在得到解密之后将被填充至页面内容以及为业务逻辑的执行提供所需 要的参数,至此,业务逻辑方能够顺利执行。
[0066] 应当理解的,对于所进行的解密处理,一方面是对所获得数据,即加密数 据进行解密的过程,另一方面,也可以是对所携带的签名进行安全性校验的过 程,在通过私钥,根据加密数据所携带的签名来判断加密数据所携带的代码信 息和数据是否被伪造或篡改,在此安全性校验通过时,方可提取其中的代码信 息和数据。
[0067] 在步骤150中,控制原生方法域将解密数据回传至业务框架域。
[0068] 其中,对于原生方法域内通过原生方法的执行而获得的解密数据,将通过 业务框架域内业务逻辑的回调,回传至业务框架域,以使得业务框架域对获得 的解密数据执行其业务逻辑。
[0069] 在步骤170中,业务框架域内根据被回传的解密数据发起相应业务逻辑的 执行。
[0070] 其中,在由原生方法域解密而获得解密数据之后,即可为跳转进入的页面, 或者所执行的业务流程填充解密数据,至此就可以实现跨平台应用中页面的跳 转显示,相应的业务逻辑也将随着页面的跳转而被执行。
[0071] 通过如上所述的示例性实施例,使得跨平台应用所请求的数据,即跨平台 应用与服务器之间传送的数据能够引入加密机制,进而不再是“透明”的存在, 避免信息泄漏以及数据替换、伪造的发生,安全性得到非常大的提高。
[0072] 在此应当强调说明的是,跨平台应用是被业务框架域所搭建,能够通过业 务框架域调用原生方法域内原生方法实现某特定功能的。例如,被ReactNative 平台所实现业务框架域而搭建的跨平台应用,ReactNative平台所实现的业务框 架域是JavaScript域,由此而搭建的跨平台应用即为JavaScript域内所搭建的, 与之相对应的,跨平台应用中的实现也将基于JavaScript代码所实现。
[0073] 对于用ReactNative域搭建的跨平台应用,在启动后会从服务器请求数据。 而在跨平台应用的启动中,由于其是通过JavaScript代码在ReactNative域内实 现的业务逻辑,JavaScript代码是以脚本文件形式存在的。在业务逻辑的执行中, 脚本文件经由解析引擎,例如,JavaScript Core引擎解析,利用通信桥映射到对 应的原生方法。至此便实现了ReactNative域和原生方法域内的互访,进而实现 跨平台应用中的特定功能。
[0074] 通过本发明的示例性实施例,一方面实质上实现了原生跨平台应用,具备 足够的扩展性、灵活性和性能,另一方面,则从根本上提升了跨平台应用的安 全性能。
[0075] 图2是根据一示例性实施例对步骤110的具体实现细节进行描述的流程图。 该步骤110,在进行原生方法的异步调用中,如图2所示,至少包括以下步骤。
[0076] 在步骤111中,业务框架域通过向原生方法域调用原生方法,使得被调用 的原生方法发起服务器访问,向服务器请求数据。
[0077] 在步骤113中,接收服务器向原生方法域返回的加密数据,加密数据在业 务框架域调用原生方法域后执行解密处理。
[0078] 其中,原生方法域向业务框架域暴露了各种接口函数,即API接口,以便 于业务框架域根据需要得以调用原生方法域中的原生方法实现某特定功能。
[0079] 具体的,通过业务框架域本身所具备的通信机制,调用原生方法域中与服 务器通信实现数据请求的接口函数,以支持将服务器返回的加密数据传输至原 生方法域。
[0080] 此时,原生方法域所形成的原生方法,即原生方法域向业务框架域暴露的 数据请求接口,将向服务器发起请求,以访问服务器中的数据,进而获得业务 框架域内跨平台应用所跳转页面以及业务逻辑执行所需要的数据,这些均可由 服务器返回的加密数据解密后获得。在一个示例性实施例的具体实现中,数据 请求接口,即为http请求接口。
[0081] 通过此示例性实施例,使得业务框架域内实现的跨平台应用借由原生方法 域实现与服务器之间加密数据的传输,并且在传输完成之后,执行解密的原生 方法域直接获得此加密数据,节省了所花费的时间,不需要再次进行异步调用 而将加密数据传送至原生方法域内,加快了处理效率。
[0082] 图3是根据另一示例性实施例示出的一种跨平台应用中数据处理方法的流 程图。该跨平台应用中数据处理方法,在执行步骤130之前,如图3所示,还 包括以下步骤。
[0083] 在步骤210中,获取加密数据的业务框架域异步调用原生方法域内封装的 数据解密接口函数,在数据解密接口函数被异步调用下,异步调用原生方法域 内的数据请求接口。
[0084] 在步骤230中,通过数据请求接口将加密数据传送至数据解密接口函数。
[0085] 其中,与图2所示实现过程所不同之处在于,图3所示的业务框架域异步 调用原生方法执行加密数据的解密处理,是通过数据请求接口以及数据解密接 口函数的异步调用而实现的。
[0086] 数据请求是由业务框架域触发进行的,因此所请求获得的加密数据,将存 在于业务框架域内,需要通过数据请求接口的异步调用而将加密数据传入原生 方法域,至此方可通过原生方法域内数据解密接口函数的异步调用对所传入的 加密数据进行解密处理。
[0087] 在一个示例性实施例的具体实现中,步骤210的实现过程包括:首先业务 框架域通过所获得加密数据创建实例对象,然后通过业务框架域中配置的JavaScript Core引擎,为加密数据分配作用域,在作用域进行实例对象至原生方 法对象之间的转换,最后根据原生方法对象触发原生方法域内数据解密接口函 数的异步调用,异步调用的数据解密接口函数通过异步调用数据请求接口访问 原生方法对象中的加密数据。
[0088] 也就是说,对于业务框架域和原生方法域之间的交互,通过业务框架域中 配置的JavaScript Core引擎实现,进而使得原生方法的调用简单便捷,易于实现。
[0089] 业务框架域进行加密数据的实例化,封装加密数据而创建实例对象。 JavaScript Core引擎为加密数据分配的作用域用于提供JavaScript代码执行的环 境,以在此环境进行实例对象所指定功能关键词所关联原生方法的异步调用, 所异步调用原生方法,即数据解密接口函数,将通过数据请求接口的调用而访 问实例对象中的加密数据,进而方可将加密数据传入数据解密接口函数,实现 加密数据的解密处理。
[0090] 在一个示例性实施例中,业务框架域为JavaScript域,则步骤170,包括: 将解密数据传入JavaScript域中由JavaScript代码实现的业务逻辑,触发所述业 务逻辑的执行。
[0091] 其中,如前所述的,在JavaScript域内,业务逻辑是通过JavaScript代码实 现的。具体而言,通过JavaScript代码所形成的脚本文件,是对应于业务逻辑的。
[0092] 在原生方法域完成了加密数据的解密处理,获得解密数据之后,对于原生 方法域而言,将进行JavaScript代码所实现业务逻辑的回调,以将解密数据传入 JavaScript代码。
[0093] 在一个示例性实施例的具体实现中,对于原生方法域内执行的解密处理, 包括:(1)使用原生方法对获得的加密数据进行安全性校验并解密,获得字符 串信息;
[0094] (2)在原生方法域进行字符串信息的原生语言校验获得适配于业务框架域 的解密数据;
[0095] 其中,原生方法域实质是作为业务框架域的底层实现,因此二者相互之间 紧密耦合。原生方法域通过操作系统所支持的本地代码(Native Code)实现核 心类或者某特定功能的组件,即安全性校验和解密的组件,进而由所实现的组 件对获得的加密数据进行处理即可得到相应的字符串信息。
[0096] 应当说明,对于加密数据,是服务器对实现页面内容以及所对应业务逻辑 的代码信息和数据使用指定的加密方法进行序列化得到的,因此在对其解密之 后便得到了字符串信息。
[0097] 原生语言校验用于保证原生方法域向业务框架域传送的信息和数据在语言 上的合法性,进而在通过原生语言校验之后方可传送给业务框架域。
[0098] 应当理解,原生方法域和业务框架域之间的通信,也是借由业务框架域内 置的通信机制实现的。
[0099] 最后,原生方法域向业务框架域反向调用由业务框架域形成的业务逻辑, 将解密数据传送至业务框架域。
[0100] 在业务框架域所内置的通信机制下,原生方法域进行业务框架域内的反向 调用,以实现解密数据向业务框架域内的传输,进而借于实现业务框架域内跨 平台应用中页面的渲染和业务逻辑的执行。
[0101] 通过本示例性实施例,实现了原生方法域内实现跨平台应用中页面内容的 加密数据的解密和相关的其它处理,并使其回传至业务框架域,由此,便实现 上跨平台应用中数据的安全性处理,借用于原生方法域的能力,完成解密以及 各种安全性验证。
[0102] 以一跨平台应用的实现为例,描述如上的方法。业务框架域为ReactNative 平台所实现的JavaScript域,原生方法域与此JavaScript域耦合。
[0103] 应当首先进行说明的是,跨平台应用中数据的处理应当分为两大部分,一 是JavaScript域通过API调用而使原生方法域向服务器发起请求,以获得加密数 据;二是原生方法域解密此加密数据后实现JavaScript域内解密数据的获得。
[0104] 图4是根据一示例性实施例示出的JavaScript域与原生方法域之间的逻辑实 现示意图。移动应用的开发中,存在着安卓(Android)APP(Application,应用) 和iOS APP两大操作系统的跨平台应用实现。在ReactNative平台的支持下,两 种操作系统的跨平台应用实现均可采用同一套代码,这一套代码将实现了 JavaScript域内搭建的跨平台应用,进而保证了此跨平台应用所具备的跨平台运 行性能。
[0105] 如图4所示的,在本发明所实现的Android APP和iOS APP中,均包括两 大块,一为业务逻辑的实现,二则是加解密逻辑的实现。如前所述的,业务逻 辑对应的代码,在ReactNative平台支持下采用Android APP和iOS APP采用同 一套代码,而加解密逻辑则分别通过Android原生实现以及iOS原生实现。
[0106] 图5是根据一示例性实施例示出的跨平台应用与服务器之间交互的逻辑示 意图。如前所述的,跨平台应用30中的实现包括了ReactNative平台310所实 现JavaScript域以及原生方法域330。
[0107] 跨平台应用是ReactNative平台310所实现JavaScript域搭建的。在需要通 过服务器40的访问获取数据时,将进行ReactNative平台310所实现JavaScript 域和原生方法域330之间的通信。
[0108] 具体的,ReactNative平台310的JavaScript域通过API调用,使得原生方 法域330向服务器40发起HTTP请求。
[0109] 服务器40向原生方法域330返回加密数据。以在原生方法域330内通过私 钥、携带的md5签名等判断是否存在数据的伪造、篡改等。
[0110] 如果不存在安全性问题,则进行原生语言校验之后便向上层,即ReactNative 平台310的JavaScript域返回解密数据。
[0111] 在此应当说明的是,对于解密所获得的数据,即前述所指的字符串信息, 将保存于原生方法域内,以避免存放于ReactNative平台310所实现的JavaScript 域内发生的数据泄漏的问题。
[0112] 图6是根据一示例性实施例示出的一种装置的框图。例如,装置500可以 是前述所指的终端设备。
[0113] 参照图6,装置500可以包括以下一个或多个组件:处理组件502,存储器 504,电源组件506,多媒体组件508,音频组件510,传感器组件514以及通信 组件516。
[0114] 处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数 据通信,相机操作以及记录操作相关联的操作等。处理组件502可以包括一个 或多个处理器518来执行指令,以完成下述的方法的全部或部分步骤。此外, 处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的 交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处 理组件502之间的交互。
[0115] 存储器504被配置为存储各种类型的数据以支持在装置500的操作。这些 数据的示例包括用于在装置500上操作的任何应用程序或方法的指令。存储器 504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态 随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编 程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称 EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪 存储器,磁盘或光盘。存储器504中还存储有一个或多个模块,该一个或多个 模块被配置成由该一个或多个处理器518执行,以完成上述图1、图2和图3任 一所示方法中的全部或者部分步骤。
[0116] 电源组件506为装置500的各种组件提供电力。电源组件506可以包括电 源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相 关联的组件。
[0117] 多媒体组件508包括在所述装置500和用户之间的提供一个输出接口的屏 幕。在一些实施例中,屏幕可以包括液晶显示器(Liquid Crystal Display,简称 LCD)和触摸面板。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接 收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑 动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界, 而且还检测与所述触摸或滑动操作相关的持续时间和压力。屏幕还可以包括有 机电致发光显示器(Organic Light Emitting Display,简称OLED)。
[0118] 音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括 一个麦克风(Microphone,简称MIC),当装置500处于操作模式,如呼叫模式、 记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音 频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施 例中,音频组件510还包括一个扬声器,用于输出音频信号。
[0119] 传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的 状态评估。例如,传感器组件514可以检测到装置500的打开/关闭状态,组件 的相对定位,传感器组件514还可以检测装置500或装置500一个组件的位置 改变以及装置500的温度变化。在一些实施例中,该传感器组件514还可以包 括磁传感器,压力传感器或温度传感器。
[0120] 通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通 信。装置500可以接入基于通信标准的无线网络,如WiFi(WIreless-Fidelity, 无线保真)。在一个示例性实施例中,通信组件516经由广播信道接收来自外部 广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信 组件516还包括近场通信(Near Field Communication,简称NFC)模块,以促 进短程通信。例如,在NFC模块可基于射频识别(Radio Frequency Identification, 简称RFID)技术,红外数据协会(Infrared Data Association,简称IrDA)技术, 超宽带(Ultra Wideband,简称UWB)技术,蓝牙技术和其他技术来实现。
[0121] 在示例性实施例中,装置500可以被一个或多个跨平台应用专用集成电路 (Application Specific Integrated Circuit,简称ASIC)、数字信号处理器、数字 信号处理设备、可编程逻辑器件、现场可编程门阵列、控制器、微控制器、微 处理器或其他电子元件实现,用于执行上述方法。
[0122] 下述为本发明装置实施例,可以用于执行本发明上述跨平台应用中数据处 理方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明跨平台 应用中数据处理方法实施例。
[0123] 图7是根据一示例性实施例示出的一种跨平台应用中数据处理装置的框图。 该跨平台应用中数据处理装置,跨平台应用通过业务框架域、原生方法域搭建 得到,如图7所示,包括但不限于:获取模块610、解密模块630、回传控制模 块650和业务执行模块670。
[0124] 获取模块610,用于获得跨平台应用所请求的加密数据。
[0125] 解密模块630,用于在耦合于业务框架域的原生方法域中,通过原生方法对 加密数据进行解密处理得到解密数据。
[0126] 回传控制模块650,用于控制原生方法域将解密数据回传至业务框架域。
[0127] 业务执行模块670,用于业务框架域内根据被回传的解密数据发起相应业务 逻辑的执行。
[0128] 可选的,本发明还提供一种电子设备,执行图1、图2和图3任一所示的跨 平台应用中数据安全性处理方法的全部或者部分步骤。所述装置包括:
[0129] 处理器;
[0130] 用于存储处理器可执行指令的存储器;
[0131] 其中,所述处理器被配置为执行:
[0132] 获得跨平台应用所请求的加密数据;
[0133] 在耦合于所述业务框架域的原生方法域中,通过原生方法对所述加密数据 进行解密处理得到解密数据;
[0134] 控制所述原生方法域将所述解密数据回传至所述业务框架域;
[0135] 所述业务框架域内根据被回传的所述解密数据发起相应业务逻辑的执行。。
[0136] 在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存 储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存 储介质例如包括指令的存储器504,上述指令可由装置500的处理器518执行以 完成上述跨平台应用中数据处理方法。
[0137] 应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结 构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的 权利要求来限制。