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

一种应用代码加密验证方法、装置以及计算机设备

文献发布时间:2024-04-18 19:53:33


一种应用代码加密验证方法、装置以及计算机设备

技术领域

本申请涉及应用安全技术领域,特别是涉及一种应用代码加密验证方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

小程序是一种基于特定的应用平台的内置应用程序,它能够在应用平台的客户端中直接运行,无需下载和安装。小程序具有轻量化、跨平台和开发便捷等特点,能够为用户提供方便快捷的应用体验。小程序可以在应用平台中通过搜索、扫描二维码、应用链接等方式进入。与传统的应用程序不同,微信小程序不需要用户下载和安装,可以直接在微信中使用,节省了用户的存储空间和安装时间。小程序能够提供丰富的功能和服务,包括但不限于生活服务、社交娱乐、商业应用、教育培训等。小程序的开发相对简单,开发者可以使用小程序对应的开发工具进行开发,同时应用平台也能够提供丰富的开发文档和工具。小程序的推出为企业或个人提供了更加便捷和低成本的应用开发和发布平台,同时也为用户提供了更多的应用选择和便利。

相关技术中,由于小程序的代码开发的特殊性,开发人员在编写代码时不存在开发态的环境,对于小程序IDE来说所见即所得,也即所有的代码都是以明文方式或者仅仅能做简单的代码混淆,同时开发人员编写的组件代码在第三方使用时是以明文形式使用的。

然而,目前的小程序代码在使用的过程中,存在如下的技术问题:

明文形式存在的小程序代码在开发完成后,不管是使用的过程中还是传输的过程中均存在安全性的问题,一方面容易导致代码泄露另一方面容易对第三方的使用者带来信息安全的隐患。

发明内容

基于此,有必要针对上述技术问题,提供一种能够对小程序的组件代码进行加密以及验证,从而提高小程序组件代码的安全性的一种应用代码加密验证方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

第一方面,本申请提供了一种应用代码加密验证方法。所述方法包括:

获取目标应用的组件源码,应用预设的加密算法对所述组件源码进行加密处理,得到加密后的组件代码;

响应于目标用户对所述目标应用的使用请求,获取所述目标用户的账户信息;

基于所述账户信息获取与所述目标用户对应的权限信息,根据所述权限信息生成权限文件,所述权限文件用于对所述目标用户对所述组件代码的使用权限进行验证;

将所述权限文件以及所述组件代码发送至所述目标用户,获取所述目标用户基于所述权限文件对所述目标应用的解码验证结果。

在其中一个实施例中,所述将所述权限文件以及所述组件代码发送至所述目标用户,获取所述目标用户基于所述权限文件对所述目标应用的解码验证结果包括:

基于所述权限文件对所述目标用户进行验签处理;

若所述权限文件与所述账户信息匹配,则应用与所述加密算法相关联的解密算法,对所述组件代码进行解码验证,得到所述解码验证结果。

在其中一个实施例中,所述获取目标应用的组件源码,应用预设的加密算法对所述组件源码进行加密处理,得到加密后的组件代码之后,还包括:

将所述组件代码发布至预设的第三方数据平台。

在其中一个实施例中,所述响应于目标用户对所述目标应用的使用请求,获取所述目标用户的账户信息包括:

基于所述使用请求生成与所述第三方数据平台对应的数据申请,所述数据申请用于向所述第三方数据平台进行数据请求;

通过所述数据申请获取所述第三方数据平台反馈的所述组件代码。

在其中一个实施例中,所述获取目标应用的组件源码,应用预设的加密算法对所述组件源码进行加密处理,得到加密后的组件代码包括:

根据所述目标应用的功能模块对所述组件源码进行切片处理,得到组件模块源码,所述组件模块源码与所述目标应用的功能模块对应;

分别对所述组件模块源码进行加密处理,得到组件模块代码。

在其中一个实施例中,所述分别对所述组件模块源码进行加密处理,得到组件模块代码包括:

在预设的若干个候选加密算法中选取与所述组件模块源码匹配的目标加密算法;

基于所述目标加密算法实现对所述组件模块源码的加密处理。

第二方面,本申请还提供了一种应用代码加密验证装置。所述装置包括:

源码加密模块,用于获取目标应用的组件源码,应用预设的加密算法对所述组件源码进行加密处理,得到加密后的组件代码;

应用请求模块,用于响应于目标用户对所述目标应用的使用请求,获取所述目标用户的账户信息;

权限文件模块,用于基于所述账户信息获取与所述目标用户对应的权限信息,根据所述权限信息生成权限文件,所述权限文件用于对所述目标用户对所述组件代码的使用权限进行验证;

解码验证模块,用于将所述权限文件以及所述组件代码发送至所述目标用户,获取所述目标用户基于所述权限文件对所述目标应用的解码验证结果。

在其中一个实施例中,所述解码验证模块包括:

验签处理模块,用于基于所述权限文件对所述目标用户进行验签处理;

代码解码模块,用于若所述权限文件与所述账户信息匹配,则应用与所述加密算法相关联的解密算法,对所述组件代码进行解码验证,得到所述解码验证结果。

在其中一个实施例中,所述源码加密模块之后,还包括:

源码发布模块,用于将所述组件代码发布至预设的第三方数据平台。

在其中一个实施例中,所述应用请求模块包括:

数据申请模块,包括基于所述使用请求生成与所述第三方数据平台对应的数据申请,所述数据申请用于向所述第三方数据平台进行数据请求;

数据获取模块,用于通过所述数据申请获取所述第三方数据平台反馈的所述组件代码。

在其中一个实施例中,所述源码加密模块包括:

组件切片模块,用于根据所述目标应用的功能模块对所述组件源码进行切片处理,得到组件模块源码,所述组件模块源码与所述目标应用的功能模块对应;

组件模块代码模块,用于分别对所述组件模块源码进行加密处理,得到组件模块代码。

在其中一个实施例中,所述组件模块代码模块包括:

算法匹配模块,用于在预设的若干个候选加密算法中选取与所述组件模块源码匹配的目标加密算法;

模块加密模块,用于基于所述目标加密算法实现对所述组件模块源码的加密处理。

第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任意一项实施例所述的一种应用代码加密验证方法中的步骤。

第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任意一项实施例所述的一种应用代码加密验证方法中的步骤。

第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面中任意一项实施例所述的一种应用代码加密验证方法中的步骤。

上述一种应用代码加密验证方法、装置、计算机设备、存储介质和计算机程序产品,通过权利要求中的技术特征进行推导,能够达到对应背景技术中的技术问题的有益效果:

在应用代码加密验证中,在获取目标应用的组件源码后,对组件源码进行加密,从而得到加密后的组件代码,在用户请求对目标应用的使用时,首先获取目标用户的账户信息,通过账户信息确定目标用户对应的权限信息,根据权限信息生成权限文件,使得能够在应用中通过权限文件确定对目标用户开放的权限,是仅能够运行组件代码,还是能够对组件代码进行解码,并编辑等,最终向用户反馈权限文件以及组件代码,实现小程序组件代码的加密验证。在试试中,能够提高小程序使用或存储中的安全性,使得小程序的组件代码不再以明文的形式直接体现,而是通过加密的方案更改小程序组件代码的存在形式,从而实现了数据存储和传输的安全性。另一方面,在用户使用小程序的过程中预先根据用户信息生成权限文件从而通过独立、加密的权限文件对用户的使用权限进行配置,提高了应用代码在使用中的验证环节的合理性,最终提高了应用的安全性。

附图说明

图1为一个实施例中一种应用代码加密验证方法的应用环境图;

图2为一个实施例中一种应用代码加密验证方法的第一流程示意图;

图3为另一个实施例中一种应用代码加密验证方法的第二流程示意图;

图4为另一个实施例中一种应用代码加密验证方法的第三流程示意图;

图5为另一个实施例中一种应用代码加密验证方法的第四流程示意图;

图6为另一个实施例中一种应用代码加密验证方法的第五流程示意图;

图7为另一个实施例中一种应用代码加密验证方法的第六流程示意图;

图8为一个实施例中一种应用代码加密验证装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

相关技术中,由于小程序的代码开发的特殊性,开发人员在编写代码时不存在开发态的环境,对于小程序IDE来说所见即所得,也即所有的代码都是以明文方式或者仅仅能做简单的代码混淆,同时开发人员编写的组件代码在第三方使用时是以明文形式使用的。

然而,目前的小程序代码在使用的过程中,存在如下的技术问题:

明文形式存在的小程序代码在开发完成后,不管是使用的过程中还是传输的过程中均存在安全性的问题,一方面容易导致代码泄露另一方面容易对第三方的使用者带来信息安全的隐患。

本申请实施例提供的一种应用代码加密验证方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种应用代码加密验证方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:

步骤202:获取目标应用的组件源码,应用预设的加密算法对所述组件源码进行加密处理,得到加密后的组件代码。

其中,目标应用可以指基于特定的应用平台的应用程序,例如微信小程序等。组件源码可以指微信小程序中组件的实现代码。在微信小程序中,组件是一种可以复用的UI元素,可以由一组WXML模板、WXSS样式和JS逻辑代码组成。组件源码就包括了这些代码的实现细节。加密算法可以指将明文转换为密文的技术,可以包括对称加密算法,例如DES、3DES、AES等,还可以包括非对称加密算法,例如RSA、DSA、ECC等,还可以包括哈希算法、数字签名算法以及对称加密算法和非对称加密算法的结合等。组件代码在本申请实施例中可以指经加密算法处理后的、非明文形式的微信小程序的实现代码。

示例性地,服务器可以获取目标应用的组件源码,此时组件源码为明文形式,服务器可以调用预设的加密算法对组件源码进行加密,从而得到加密后的组件代码。加密处理中,服务器可以引入底层公共机制进行加密,以后后续的验证处理。

步骤204:响应于目标用户对所述目标应用的使用请求,获取所述目标用户的账户信息。

其中,账户信息可以指用于描述目标用户的身份信息的数据,可以包括用户名、用户等级等。

示例性地,服务器可以在获取充分地授权和许可的前提下,在获取目标用户对目标应用的使用请求后,获取目标用户的账户信息。

步骤206:基于所述账户信息获取与所述目标用户对应的权限信息,根据所述权限信息生成权限文件,所述权限文件用于对所述目标用户对所述组件代码的使用权限进行验证。

其中,权限信息可以指用于描述用户对不同应用程序的使用权限的信息数据。

示例性地,服务器可以根据账户信息获取与目标用户对应的权限信息,并根据权限信息生成与组件代码相匹配的权限文件,从而通过权限文件对组件代码的使用进行配置。

步骤208:将所述权限文件以及所述组件代码发送至所述目标用户,获取所述目标用户基于所述权限文件对所述目标应用的解码验证结果。

示例性地,在生成权限文件后,服务器可以将权限文件以及组件代码共同反馈至目标用户,从而通过权限文件进行验签,并最终对目标应用进行解码验证,得到解码验证结果。

上述一种应用代码加密验证方法中,结合实施例中的技术特征进行合理推导,能够实现解决背景技术中所提出的技术问题的有益效果:

在应用代码加密验证中,在获取目标应用的组件源码后,对组件源码进行加密,从而得到加密后的组件代码,在用户请求对目标应用的使用时,首先获取目标用户的账户信息,通过账户信息确定目标用户对应的权限信息,根据权限信息生成权限文件,使得能够在应用中通过权限文件确定对目标用户开放的权限,是仅能够运行组件代码,还是能够对组件代码进行解码,并编辑等,最终向用户反馈权限文件以及组件代码,实现小程序组件代码的加密验证。在试试中,能够提高小程序使用或存储中的安全性,使得小程序的组件代码不再以明文的形式直接体现,而是通过加密的方案更改小程序组件代码的存在形式,从而实现了数据存储和传输的安全性。另一方面,在用户使用小程序的过程中预先根据用户信息生成权限文件从而通过独立、加密的权限文件对用户的使用权限进行配置,提高了应用代码在使用中的验证环节的合理性,最终提高了应用的安全性。

在其中一个实施例中,可以如图3所示,步骤208包括:

步骤302:基于所述权限文件对所述目标用户进行验签处理。

其中,验签处理可以指通过验证数字签名等方式,判断对象的真实性以及有效性的处理流程。

示例性地,服务器可以根据权限文件中所包括的信息对目标用户进行验签处理。

步骤304:若所述权限文件与所述账户信息匹配,则应用与所述加密算法相关联的解密算法,对所述组件代码进行解码验证,得到所述解码验证结果。

示例性地,当权限文件的验签处理完成后,若目标用户验签成功,则进行下一步处理,也即应用与加密算法相对应的解密算法对组件代码进行解码验证,得到解码验证结果。

本实施例中,通过解码验证过程中依次对权限文件进行验签,以及对组件代码进行解码验证的方案,能够提高组件代码的验证的安全性。

在其中一个实施例中,可以如图4所示,步骤202之后,还包括:

步骤402:将所述组件代码发布至预设的第三方数据平台。

示例性地,在获取组件代码后,服务器可以将组件代码发布至特定的数据库或数据服务器内,从而实现组件代码的存储和响应。

本实施例中,通过第三方数据平台实现组件代码的存储和响应,有助于提高小程序数据的响应效率。

在其中一个实施例中,可以如图5所示,步骤204包括:

步骤502:基于所述使用请求生成与所述第三方数据平台对应的数据申请,所述数据申请用于向所述第三方数据平台进行数据请求。

其中,数据申请可以包括目标用户所请求的目标应用的关联检索信息,还可以包括目标用户自身的账户信息。

步骤504:通过所述数据申请获取所述第三方数据平台反馈的所述组件代码。

示例性地,服务器可以通过数据申请获取第三方数据平台反馈的组件代码。

本实施例中,通过第三方数据平台实现的数据存储、响应的架构下,提高了组件程序的数据响应的效率以及安全性。

在其中一个实施例中,可以如图6所示,步骤202包括:

步骤602:根据所述目标应用的功能模块对所述组件源码进行切片处理,得到组件模块源码,所述组件模块源码与所述目标应用的功能模块对应。

其中,切片处理可以指通过软件工程技术,将大型的应用程序拆分成更小、更可管理的部分,以便于开发、测试、维护和部署。

示例性地,服务器可以根据目标应用的功能模块对组件源码进行切片处理,从而得到组件模块源码,这里的组件模块源码可以与目标应用的功能模块相对应。

步骤604:分别对所述组件模块源码进行加密处理,得到组件模块代码。

示例性地,服务器可以对通过切片处理得到的组件模块源码进行加密处理,从而得到组件模块代码。

本实施例中,在加密处理中对组件源码进行切片处理,能够提高对目标应用进行处理的效率和准确度。

在其中一个实施例中,可以如图7所示,步骤604包括:

步骤702:在预设的若干个候选加密算法中选取与所述组件模块源码匹配的目标加密算法。

步骤704:基于所述目标加密算法实现对所述组件模块源码的加密处理。

本实施例中,在对组件源码加密中,切片得到的不同模块可以独立进行加密处理,能够提高加密处理的效率和灵活度。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的一种应用代码加密验证方法的一种应用代码加密验证装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个一种应用代码加密验证装置实施例中的具体限定可以参见上文中对于一种应用代码加密验证方法的限定,在此不再赘述。

在一个实施例中,如图8所示,提供了一种应用代码加密验证装置,包括:源码加密模块、应用请求模块、权限文件模块和解码验证模块,其中:

源码加密模块,用于获取目标应用的组件源码,应用预设的加密算法对所述组件源码进行加密处理,得到加密后的组件代码;

应用请求模块,用于响应于目标用户对所述目标应用的使用请求,获取所述目标用户的账户信息;

权限文件模块,用于基于所述账户信息获取与所述目标用户对应的权限信息,根据所述权限信息生成权限文件,所述权限文件用于对所述目标用户对所述组件代码的使用权限进行验证;

解码验证模块,用于将所述权限文件以及所述组件代码发送至所述目标用户,获取所述目标用户基于所述权限文件对所述目标应用的解码验证结果。

在其中一个实施例中,所述解码验证模块包括:

验签处理模块,用于基于所述权限文件对所述目标用户进行验签处理;

代码解码模块,用于若所述权限文件与所述账户信息匹配,则应用与所述加密算法相关联的解密算法,对所述组件代码进行解码验证,得到所述解码验证结果。

在其中一个实施例中,所述源码加密模块之后,还包括:

源码发布模块,用于将所述组件代码发布至预设的第三方数据平台。

在其中一个实施例中,所述应用请求模块包括:

数据申请模块,包括基于所述使用请求生成与所述第三方数据平台对应的数据申请,所述数据申请用于向所述第三方数据平台进行数据请求;

数据获取模块,用于通过所述数据申请获取所述第三方数据平台反馈的所述组件代码。

在其中一个实施例中,所述源码加密模块包括:

组件切片模块,用于根据所述目标应用的功能模块对所述组件源码进行切片处理,得到组件模块源码,所述组件模块源码与所述目标应用的功能模块对应;

组件模块代码模块,用于分别对所述组件模块源码进行加密处理,得到组件模块代码。

在其中一个实施例中,所述组件模块代码模块包括:

算法匹配模块,用于在预设的若干个候选加密算法中选取与所述组件模块源码匹配的目标加密算法;

模块加密模块,用于基于所述目标加密算法实现对所述组件模块源码的加密处理。

上述一种应用代码加密验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图Y所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储应用代码数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用代码加密验证方法。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关法律法规和标准。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

技术分类

06120116337737