程序加密方法与程序加密***
技术领域
本发明涉及网络安全技术,更具体地说,涉及一种程序加密方法与程序加密***。
背景技术
在信息时代,软件程序作为一种无形的资产,对企业起着重要的作用,一些大型企业拥有本企业内部的专属软件程序,这些软件程序一旦遭到恶意盗用,将会给企业带来巨大损失。当前的软件程序加密方法大部分都是采用在终端注册,将注册密码回传给服务器,使用时,在终端再次输入注册密码进行对比验证。但是这种加密方式中仅使用一组注册密码,注册密码比较容易被盗用或破解;且用户每次开启程序都要输入密码进行验证,严重降低了软件程序的用户体验。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,设计出一种程序加密方法与程序加密***,用于对程序进行加密,采用基于终端的物理地址与网际协议地址进行加密运算的方式进行加密。
本发明解决其技术问题所采用的技术方案是:构造一种程序加密方法与程序加密***,用于对程序进行加密,采用基于终端的物理地址与网际协议地址进行加密运算的方式进行加密。
优选地,本发明的程序加密***包括以下模块:一创建模块,用于创建用于对目标程序进行加密的验证程序,并将所述验证程序与目标程序相关联,还用于创建用于记录加密算法、被允许使用目标程序的各网络终端的物理地址、网际协议地址与加密码的密码数据包;一获取模块,用于获取所述终端的物理地址与网际协议地址,还用于获取烧录到所述终端闪存中的加密码;一加密模块,用于对获取的所述物理地址与网际协议进行加密运算;一验证模块,用于验证所述加密模块对获取的所述物理地址与网际协议进行加密运算的结果是否与所述密码数据包中的加密码之一符合。
优选地,本发明的程序加密方法包括以下步骤:在网络终端中安装目标程序以及与目标程序相关联的用于对目标程序进行加密的验证程序;在所述网络终端接收到用于打开所述目标程序的指令时,对应地触发所述验证程序运行;检测所述验证程序的运行结果,若所述验证程序的运行结果为验证通过,则运行所述目标程序,若所述验证程序的运行结果为验证失败,则停止运行所述目标程序。
优选地,所述在网络终端中安装目标程序以及与目标程序相关联的用于对目标程序进行加密的验证程序的步骤包括将所述密码数据包烧录到终端的闪存中的步骤。
优选地,本发明的程序加密方法还包括以下步骤:在所述验证程序中设置被允许使用所述目标程序的各网络终端的物理地址与网际协议地址,并在所述验证程序中设置加密算法;根据所述加密算法对被允许使用目标程序的各网络终端的物理地址和对应网际协议地址进行运算以生成被允许使用目标程序的各网络终端相应的第一加密码,并进一步生成用于记录所述算法、物理地址、网际协议地址与所述第一加密码的密码数据包。
优选地,所述第一加密码包括多组子加密码,每组子加密码均由一所述网络终端对应的物理地址和对应网际协议地址经所述算法计算得到。
优选地,所述加密算法是MD5算法。
优选地,所述检测所述验证程序的运行结果的步骤包括:读取被预烧录到终端闪存中的密码数据包中的被允许使用目标程序的各网络终端的物理地址与网际协议地址,按照所述加密算法进行运算,从而生成各终端对应的第二加密码,每个终端均对应一组第二加密码;将所述第二加密码与被允许使用目标程序的各网络终端的闪存中存储的所述第一加密码进行比较,若某终端的所述第二加密码与所述第一加密码中的任一组密码完全一致,则启动所述目标程序;否则禁止启动所述目标程序。
本发明较佳实施例的程序加密方法与程序加密***相较现有技术具有以下优点:安全性高,由于本发明采用的MD5算法不可逆,非法终端的用户很难破解验证程序的加密码;简单方便,当本发明的使用者发出打开目标程序指令时,终端自动打开验证程序进行验证,省去了传统加密方式中手动输入密码验证的环节。
附图说明
图1是本发明较佳实施例的程序加密***的功能模块图。
图2是本发明较佳实施例的程序加密方法的总体软件结构图。
图3是本发明较佳实施例的程序加密***的硬件结构图。
图4是本发明较佳实施例的程序加密方法在网络终端的使用方法的流程图。
具体实施方式
下面结合附图及实施例对本发明作进一步说明。
如图1所示,为本发明较佳实施例的程序加密***的功能模块图。
本发明较佳实施例的程序加密***1包括:一创建模块11,用于创建用于对目标程序进行加密的验证程序,并将所述验证程序与目标程序相关联,还用于创建用于记录加密算法、被允许使用目标程序的各网络终的物理地址、网际协议地址与加密码的密码数据包。一烧录模块12,用于将所述密码数据包烧录到终端的闪存中;一获取模块13,用于获取该终端的物理地址与网际协议地址,还用于获取烧录到该终端闪存中的加密码;一加密模块14,用于对获取到的所述物理地址与网际协议进行加密运算;一验证模块15,用于验证所述加密模块对获取到的所述物理地址与网际协议进行加密运算的结果是否与所述密码数据包中的加密码之一符合。
如图2所示,为本发明较佳实施例的程序加密方法的总体软件结构图。本发明较佳实施例的程序加密方法中,如图1所示的创建模块11将目标程序22与验证程序21相关联。验证程序21中设有被允许使用目标程序22的终端的物理地址与网际协议地址,验证程序21还设有加密算法,验证程序21根据所述加密算法对可使用目标程序22的各终端的物理地址与网际协议地址进行运算,得到各终端相应的第一加密码,所述第一加密码包括多组子加密码,每组子加密码均由一所述网络终端对应的物理地址和对应网际协议地址经所述算法计算得到;如图1所示的创建模块11生成用于记录所述算法、物理地址、网际协议地址与第一加密码的密码数据包211,验证程序21包括密码数据包211。
如图3所示,为本发明较佳实施例的程序加密***的硬件结构图。
本发明较佳实施例的程序加密***的硬件结构包括:主机X、网络Y、终端Z;主机X通过网络Y与终端Z互联。终端Z的各终端均具有唯一的物理地址与网际协议地址。主机X创建验如图2所示的验证程序21以及目标程序22,并将验证程序21以及目标程序22与网络Y互联,终端Z的终端均可通过网络Y下载验证程序21以及目标程序22。
如图4所示,为本发明较佳实施例的程序加密方法在如图3所示的终端Z的使用流程图。
步骤30,在终端Z安装如图2所示的目标程序22与验证程序21,并将如图2所示的密码数据包211烧录到终端的闪存中;
步骤31,在终端Z执行打开目标程序22指令;
步骤32,触发验证程序21;
步骤33,如图1所示的获取模块13控制终端Z的CPU根据闪存中预烧录的密码数据包211,读取密码数据包211中的第一加密码;
步骤34,如图1所示的获取模块13控制终端Z的CPU读取的本终端的物理地址与网际协议地址,如图1所示的加密模块14控制终端Z的CPU采用改良过的MD5算法进行加密运算,生成第二加密码;
步骤35,如图1所示的验证模块15控制终端Z的CPU比较第二加密码与第一加密码;
步骤36,若第二加密码与第一加密码中的任一组子加密码完全一致,则启动目标程序22;
步骤37,若第二加密码不满足与第一加密码中的任一组子加密码完全一致,则结束目标程序22。
作为优选实施方式,主机X可由个人电脑、服务器或工作站组成,网络Y可由无线局域网或有线局域网组成,终端Z可由个人电脑组成,终端Z的闪存由NOR FLASH(NOR闪存)组成。
本发明较佳实施例的程序加密方法与程序加密***具有较高的安全性。具体地,若程序被盗用,在非法终端(未获得使用目标程序许可的终端)烧录后,由于烧录到非法终端的密码数据包中不包括非法终端的物理地址与网际协议地址,因此验证程序在读取非法终端的物理地址与网际协议地址并进行加密运算后生成的第二加密码不可能与第一加密码中的任一组子加密码完全一致,导致验证失败,自动退出程序。非法用户势必会私自更改非法终端的物理地址与网际协议地址,而加密算法是不可逆的,无法破解,也就是在不知道加密算法的情况下,无法得到第一加密码指定的被允许使用目标程序的物理地址与网际协议地址。因此,非法用户无法使用目标程序,从而达到良好的保密效果。