基于认证授权的代码保护方法、装置、系统及设备与流程

文档序号:17324246发布日期:2019-04-05 21:42阅读:227来源:国知局
基于认证授权的代码保护方法、装置、系统及设备与流程

本发明涉及计算机网络安全技术领域,尤其是涉及一种基于认证授权的代码保护方法、装置、系统及设备。



背景技术:

java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。java语言能够跨平台,是因为java源代码被编译器翻译成了类文件,而类文件作为中间代码是以一种和平台无关的格式保存的。类文件有一个缺点,就是可以利用java语言的软件开发工具包(javadevelopmentkit,jdk)中的反汇编器对类文件进行反汇编,然后再利用反编译工具对反汇编的结果进行反编译,得出该类的源代码。在java代码中往往包含着一些非常敏感的信息,有些关系到开发者的利益,有些可能因关系到软件用户的利益。所以在这种情况下,从开发商和用户两方面角度考虑,都非常有必要对java程序以及源码进行保护。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于认证授权的代码保护方法、装置、系统及设备,对java程序及源代码进行保护。

第一方面,本发明实施例提供了一种基于认证授权的代码保护方法,包括:获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件;获取待授权信息文件,并根据待授权信息文件生成授权文件;待授权信息文件包括生产环境的主机信息;将加密源文件和授权文件发送至生产环境。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件的步骤之后,方法还包括:对加密源文件进行加密打包,得到打包加密源文件;将打包加密源文件发送至生产环境。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件的步骤,包括:获取源代码文件;根据rsa算法对源文件进行加密,得到加密源文件。

结合第一方面及其第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,获取待授权信息文件,并根据待授权信息文件生成授权文件的步骤,包括:获取待授权信息文件;根据待授权信息文件、第一秘钥和有效期生成授权文件;第一秘钥根据rsa算法生成。

第二方面,本发明实施例还提供一种基于认证授权的代码保护装置,包括:加密模块,用于获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件;授权模块,用于获取待授权信息文件,并根据待授权信息文件生成授权文件;待授权信息文件包括生产环境的主机信息;发送模块,用于将加密源文件和授权文件发送至生产环境。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,该装置还包括打包模块,用于:对加密源文件进行加密打包,得到打包加密源文件;将打包加密源文件发送至生产环境。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,加密模块,还用于:获取源代码文件;根据rsa算法对源文件进行加密,得到加密源文件。

结合第二方面及其第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,授权模块,还用于:获取待授权信息文件;根据待授权信息文件、第一秘钥和有效期生成授权文件;第一秘钥根据rsa算法生成。

第三方面,本发明实施例还提供了一种基于认证授权的代码保护系统,该系统包括提供设备和部署设备;提供设备使用上述第一方面的任一种方法为部署设备提供加密源文件和授权文件。

第四方面,本发明实施例还提供了一种电子设备,包括存储器、处理器,存储器中存储有可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面的任一种方法的步骤。

本发明实施例带来了以下有益效果:本发明实施例提供了一种基于认证授权的代码保护方法、装置、系统及设备,得到源代码文件后,使用非对称加密算法对源代码文件进行加密,得到加密源文件;获取授权信息文件后,根据授权信息文件生成授权文件,即根据生产环境的主机信息得到授权文件;最后,将加密源文件和授权文件均发送至生产环境。本发明实施例使用非对称加密算法对源代码文件进行加密,可以保证源代码文件不直接被获取到,通过生成授权文件从而对生产环境进行校验,保证java程序以及源码的安全使用。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

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

图1为本发明实施例提供的基于认证授权的代码保护方法流程图;

图2为本发明实施例提供的一种基于认证授权的代码保护装置结构框图;

图3为本发明实施例提供的另一种基于认证授权的代码保护装置结构框图;

图4为本发明实施例提供的基于认证授权的代码保护系统结构框图;

图5为本发明实施例提供的电子设备结构示意框图;

图6为本发明实施例提供的基于认证授权的代码保护方法使用过程示意图。

图标:

21-加密模块;22-授权模块;23-发送模块;24-打包模块;41-提供设备;42-部署设备;51-存储器;52-处理器。

具体实施方式

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

目前java代码保护方法主要有以下两种:1、代码混淆:混淆工具很多,也有成效。缺点:当程序出现异常时,打印出的堆栈信息也是混淆后的,根据该信息来定位出现问题的代码将变的非常困难,使得维护成本大大提升。2、加密狗:用加密锁硬件保护。缺点:加密狗程序不是非常稳定,往往会使得程序出现一些非自身代码缺陷导致的问题,往往这些问题不容易解决。加密狗对较低版本的jdk1.6的java程序的加密支持的非常好,但是对高版本的jdk比如jdk7,jdk8则存在问题,即使加密后,还是能从内存中备份出代码。

基于此,本发明实施例提供的一种基于认证授权的代码保护方法、装置、系统及设备,可以通过易加密、难破解、运行稳定且易于维护的代码保护方法对代码进行保护。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种基于认证授权的代码保护方法进行详细介绍。

实施例1

本发明实施例1提供了一种基于认证授权的代码保护方法,参见图1所示的基于认证授权的代码保护方法流程图,该方法包括以下步骤:

步骤s102,获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件。

程序提供方将源代码文件导入第一安全盾进行加密,得到加密源文件。第一安全盾用于对源代码加解密。第一安全盾由go语言(thegoprogramminglanguage,golang)编写并编译为可执行文件,部署在程序提供方。

步骤s104,获取待授权信息文件,并根据待授权信息文件生成授权文件;待授权信息文件包括生产环境的主机信息。

待授权信息文件授权文件包含生产环境主机的指纹信息,包含但不限于cpu、硬盘、jdk环境、mac地址、使用期限、使用次数。待授权信息文件由第二安全盾在生产环境中导出。第二安全盾由golang编写并编译成so文件,部署于生产环境,即部署在程序的使用方。程序提供方接收由生产环境发送的待授权信息文件,并将待授权信息文件导入第一安全盾进行授权,生产授权文件。第一安全盾还能控制程序的授权。

步骤s106,将加密源文件和授权文件发送至生产环境。

通过发送程序包将加密源文件和授权文件发送至生产环境。将授权文件导入部署在生产环境中的第二安全盾中,在生产环境中运行主程序之前,使用第二安全盾校验程序调用的jdk环境是否为程序指定的jdk环境,如果jdk环境异常也会停止程序运行,防止被修改过的jdk环境直接从内存中备份出代码。

程序运行时,生产环境中的第二安全盾将校验指纹信息的有效性,并对加密源文件进行解密,然后调用虚拟机运行主程序。

本发明实施例提供了一种基于认证授权的代码保护方法,该方法包括:得到源代码文件后,使用非对称加密算法对源代码文件进行加密,得到加密源文件;获取授权信息文件后,根据授权信息文件生成授权文件,即根据生产环境的主机信息得到授权文件;最后,将加密源文件和授权文件均发送至生产环境。本发明实施例使用非对称加密算法对源代码文件进行加密,可以保证源代码文件不直接被获取到,通过生成授权文件从而对生产环境进行校验,保证java程序以及源码的安全使用。

为了增强源代码文件的保护效果,提高代码的安全性,获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件的步骤之后,该方法还包括以下步骤:

(1)对加密源文件进行加密打包,得到打包加密源文件。

利用打包程序对加密源文件进行打包,得到打包加密源文件。对于打包加密源文件,在使用时,如果没有正确的密码则无法解压获取之前加密过的程序。

(2)将打包加密源文件发送至生产环境。

使用打包程序对加密源文件进行打包,得到打包加密源文件并发送至生产环境,同时,也需要为程序使用方提供解包程序和解密程序。其中,解包程序是打包程序的逆程序,解包程序中包含打包加密源文件的打包密码,用于解开打包程序生成的打包加密源文件。在生产环境部署解包程序,当生产环境有程序包更新时,解包程序自动对更新的打包加密源文件进行解包。解包后,再使用解密程序对加密源文件进行解密。

为了得到更加可靠的加密源文件,获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件的步骤,包括:获取源代码文件;根据rsa算法对源文件进行加密,得到加密源文件。

rsa加密算法是一种非对称加密算法。对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(简称公钥)和私有密钥(简称私钥)。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

获取待授权信息文件,并根据待授权信息文件生成授权文件的步骤,包括:获取待授权信息文件;根据待授权信息文件、第一秘钥和有效期生成授权文件;第一秘钥根据rsa算法生成。

第一秘钥是指由rsa算法生成的秘钥对中的私钥。有效期可以根据用户需求进行确定。在生产环境运行程序的过程中,第二安全盾将定时校验指纹信息是否改变和授权有效期是否到期,如遇改变或超期,将会停止主程序的运行。

本发明实施例提供了一种基于认证授权的代码保护方法、装置、系统及设备,参见图6所示的基于认证授权的代码保护方法使用过程示意图,提供方生成加密源文件或打包加密源文件等产品给客户,客户将提供方提供的加密源文件及解包程序等产品部署在生产环境,并根据提供方提供的授权文件得到授权,再对产品进行解密才能正常运行。

本发明实施例中,首先,程序提供方对程序文件采用rsa算法加密并且加密打包,程序使用者根据程序提供方下发的解包程序对程序包进行解压,根据程序提供方下发的解密程序在程序文件运行时校验主机环境指纹信息、运行环境信息,校验通过后对程序文件进行解密。其特点是易加密、维护成本降低,去除加密狗、运行稳定,在双重加密和运行时、定期校验,难破解,能生产环境主机进行授权,从而控制程序的使用期限或次数。

实施例2

本发明实施例2提供了一种基于认证授权的代码保护装置,参见图2所示的一种基于认证授权的代码保护装置结构框图,该装置包括:

加密模块21,用于获取源代码文件,并根据非对称加密算法对源代码文件进行加密,得到加密源文件;授权模块22,用于获取待授权信息文件,并根据待授权信息文件生成授权文件;待授权信息文件包括生产环境的主机信息;发送模块23,用于将加密源文件和授权文件发送至生产环境。

参见图3所示的另一种基于认证授权的代码保护装置,该装置还包括打包模块24,用于:对加密源文件进行加密打包,得到打包加密源文件;将打包加密源文件发送至生产环境。

加密模块,还用于:获取源代码文件;根据rsa算法对源文件进行加密,得到加密源文件。

授权模块,还用于:获取待授权信息文件;根据待授权信息文件、第一秘钥和有效期生成授权文件;第一秘钥根据rsa算法生成。

本发明实施例所提供的基于认证授权的代码保护装置,其实现原理及产生的技术效果和前述基于认证授权的代码保护方法实施例相同,为简要描述,基于认证授权的代码保护装置实施例部分未提及之处,可参考前述基于认证授权的代码保护方法实施例中相应内容。

实施例3

本发明实施例3提供了一种基于认证授权的代码保护系统,参见图4所示的基于认证授权的代码保护系统结构框图,该系统包括:

提供设备41和部署设备42;提供设备使用实施例1中任一种方法为部署设备提供加密源文件和授权文件。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的基于认证授权的代码保护系统的具体工作过程,可以参考前述基于认证授权的代码保护方法实施例中的对应过程,在此不再赘述。

实施例4

本发明实施例4提供了一种电子设备,参见图5所示的电子设备结构示意框图,该设备包括:

存储器51、处理器52,存储器51中存储有可在处理器52上运行的计算机程序,处理器执行计算机程序时实现上述实施例1中的任一种方法的步骤。

本发明实施例提供的电子设备,与上述实施例提供的基于认证授权的代码保护方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。

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

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1