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

一种机台软件的启动方法、装置及机台设备

文献发布时间:2023-06-19 09:29:07


一种机台软件的启动方法、装置及机台设备

技术领域

本申请涉及安全技术领域,特别是涉及一种机台软件的启动方法、装置及机台设备。

背景技术

现有技术中对软件源代码的加密策略分为两种方式,一种方式是:公司购买外部的加密策略软件,有一定权限的管理人员都可以解密文件为明文,同时加密策略公司的相关人员也有权利进行解密,另一种方式是软件出厂前进行加密,然后通过加密狗进行解密。

目前现有技术中,拥有解密权限的人员可将代码文件解密为明文,然后通过非法拷贝即可获得软件的所有源代码文件,而对于客户现场的发布软件,只要具有加密狗就可以解密,现场的可执行文件和类库在解密的情况下就可以反编译看到源代码,上述两种方式都可以直接得到软件源代码,从而容易造成软件源代码的泄露。

发明内容

本申请提供了一种机台软件的启动方法、装置及机台设备,以解决现有技术中源代码容易泄漏的问题。

为了解决上述问题,本申请公开了一种机台软件的启动方法,包括:

获取指定终端的注册表信息中的固有信息;

对所述注册表信息中的固有信息进行第一次加密,生成第一密文数据;

对所述第一密文数据和所述固有信息进行拼装,生成第一拼接数据;

对所述第一拼接数据进行第二次加密,生成第二密文数据;

将所述第二密文数据与预先生成的密文数据进行比较,若所述第二密文数据与所述预先生成的密文数据不同,则禁止启动所述机台软件并清除所述机台软件的内存数据;

若所述第二密文数据与预先生成的密文数据相同,则启动所述机台软件。

可选的,所述对所述注册表信息中的固有信息进行第一次加密,生成第一密文数据的步骤包括:

使用非对称加密算法或者密码散列函数算法对所述注册表信息中的固有信息进行第一次加密,生成所述第一密文数据。

可选的,所述对所述第一拼接数据进行第二次加密,生成第二密文数据的步骤包括:

使用非对称加密算法或者密码散列函数算法对所述第一拼接数据进行第二次加密,生成所述第二密文数据。

可选的,所述预先生成密文数据的步骤包括:

获取样本注册表信息中的样本固有信息;

对所述样本固有信息进行第一次加密,生成第三密文数据;

对所述第三密文数据和所述样本固有信息进行拼装,生成第二拼接数据;

对所述第二拼接数据进行第二次加密,生成第四密文数据,将所述第四密文数据作为预先生成密文数据。

可选的,所述第一密文数据设置于所述机台软件的主程序中或者设置于所述机台软件的主程序的子程序中。

可选的,所述对所述第一密文数据和所述固有信息进行拼装,生成第一拼接数据的步骤包括:

通过Base64编码对所述第一密文数据和所述固有信息进行拼装,生成第一拼接数据。

为了解决上述问题,本申请还公开了一种机台软件的启动装置,包括:

获取模块,用于获取指定终端的注册表信息中的固有信息;

第一加密模块,用于对所述注册表信息中的固有信息进行第一次加密,生成第一密文数据;

第一拼装模块,用于对所述第一密文数据和所述固有信息进行拼装,生成第一拼接数据;

第二加密模块,用于对所述第一拼接数据进行第二次加密,生成第二密文数据;

比较输出模块,用于将所述第二密文数据与预先生成的密文数据进行比较,若比较结果为所述第二密文数据与所述预先生成的密文数据不同,则禁止启动所述机台软件并清除所述机台软件的内存数据;

所述比较输出模块,还用于比较所述第二密文数据于所述预先生成的密文数据是否相同,若比较结果为所述第二密文数据与所述预先生成的密文数据相同,则启动所述机台软件。

可选的,所述第一加密模块,用于使用非对称加密算法或者密码散列函数算法对所述注册表信息中的固有信息进行第一次加密,生成所述第一密文数据。

可选的,所述第二加密模块,用于使用非对称加密算法或者密码散列函数算法对所述第一拼接数据进行第二次加密,生成所述第二密文数据。

为了解决上述问题,本申请还公开了一种机台设备,包括:

一个或多个处理器;

存储装置,其上存储有一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述所述的方法。

与现有技术相比,本申请包括以下优点:

本申请获取指定终端的注册表信息中的固有信息,并对注册表信息中的固有信息进行两次加密,生成第二密文数据,这样在指定终端注册表信息发生变化时,注册表信息中的固有信息也不会发生变化,并且是对注册表的固有信息进行加密,这样使得生成的第二密文数据比较隐蔽,不容易被窃取;将所述第二密文数据与预先生成的密文数据进行比较,若所述第二密文数据与所述预先生成的密文数据不同,则禁止启动所述机台软件并清除所述机台软件的内存数据,同时主程序并不做任何提示,只是不启动,这时即使用户再进行多次编码的修改,破坏的主程序也将无法再次启动,有效的避免了非法拷贝软件的源代码进行修改牟利的情况,保证了软件源代码的安全性和版权,若所述第二密文数据与所述预先生成的密文数据相同,则启动机台软件。

当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。

附图说明

图1是本申请实施例所述一种机台软件的启动方法的流程图;

图2是本申请实施例所述一种机台软件的启动装置的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,其示出了本申请实施例所述一种机台软件的启动方法的流程图,具体包括:

步骤101:获取指定终端的注册表信息中的固有信息。

在实际应用中,当机台软件的可执行文件部署在终端时,则获取指定终端的注册表信息中的固有信息,然后对固有信息进行二次加密,从而保证了只有一个终端安装与终端对应的可执行文件。

固有信息一般是指在注册表中不会发生变化的信息,即在安装新程序时,注册表中的信息也不会发生变化的信息,例如:固有信息可以为计算机的硬件设备CPU的序列号,也可以为用户名,在一个局域网中还可以为用户的IP地址,具体的固有信息可以根据实际应用场景进行设定,只要是注册表中不会发生变化的信息即可,对此本申请不做具体限制。

在实际应用中,可以从指定终端的注册表信息中提取固有信息,也可以从注册表的配置文件中提取固有信息。

步骤102:对所述注册表信息中的固有信息进行第一次加密,生成第一密文数据。

其中,所述第一密文数据可以设置于所述机台软件的主程序中或者设置于所述机台软件的主程序的子程序中,具体的,第一密文数据可以设置于机台软件主程序中的某一段代码中,也可以设置于机台软件的主程序的子程序中的某一段代码中,也可以设置于机台软件的可执行文件中,对此本申请不做具体限制。

在具体应用中,可以采用国密算法对注册表信息进行第一次加密,生成第一密文数据。

国密算法包括:SM1、SM2、SM3和SM4,SM1为对称加密算法、SM2为非对称加密算法、SM3为密码散列函数加密算法、SM4为摘要加密算法,在本实施例中,主要采用的是非对称加密算法和密码散列函数加密算法对注册表信息中的固有信息进行加密。

非对称加密算法是指用于加密的密钥与用于解密的密钥是不同的,而且从加密的密钥无法推导出解密的密钥。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

现有的非对称加密算法有很多种,如RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等,本领域技术人员在实现本实施例的机台软件的加密时,可以根据实际情况,选择适当的非对称加密算法,对注册表信息中的固有信息进行第一次加密,生成二进制第一密文数据。

密码散列函数算法是一种单向函数,要由散列函数输出的结果一般称为摘要。

目前密码散列函数算法有很多中,例如:MD5算法,本领域技术人员在实现本实施例的机台软件的加密时,可以根据实际情况,选择适当的密码散列函数算法,对注册表信息中的固有信息进行第一次加密,生成二进制第一密文数据。

需要说明的是,本实施例以非对称加密和密码散列函数算法为例,但不限于此,本实施例同样适用对称加密。即使用对称加密算法对所述注册表信息中的固有信息进行第一次加密,生成所述第一密文数据。优选地,所述对称加密算法包括:DES、3DES、RC2、RC4、RC5和Blowfish算法中的一种。

步骤103:对所述第一密文数据和所述固有信息进行拼装,生成第一拼接数据。

具体应用中,通过Base64编码对二进制第一密文数据和所述固有信息进行拼装,生成第一拼接数据。

优选地,将二进制第一密文数据按照Base64编码,将注册表信息中的固有信息也按照Base64编码,然后进行拼装,生成第一拼接数据。Base64编码是最常用的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息。采用Base64编码不仅比较简短,同时也具有不可读性。当然,不限于此,在实际应用中,本领域技术人员也可以采用其它适当方式,对所述第一密文数据和所述注册表信息中的固有信息进行拼装。

将第一密文数据和注册表信息中的固有信息(明文)按照设定顺序进行拼装,生成第一拼接数据。

其中,设定顺序可以根据实际应用情况进行设定,对此本申请实施例不做具体限定。

例如:按照第一密文数据字符串与注册表信息中的固有信息字符串的大小或者字符串的类型进行拼装,生成第一拼接数据。

步骤104:对所述第一拼接数据进行第二次加密,生成第二密文数据。

在具体应用中,可以采用国密算法对第一拼接数据进行第二次加密,生成第二密文数据。

国密算法包括:SM1、SM2、SM3和SM4,SM1为对称加密算法、SM2为非对称加密算法、SM3为密码散列函数加密算法、SM4为摘要加密算法,在本实施例中,主要采用的是非对称加密算法和密码散列函数加密算法对第一拼接数据进行加密。

非对称加密算法是指用于加密的密钥与用于解密的密钥是不同的,而且从加密的密钥无法推导出解密的密钥。非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

现有的非对称加密算法有很多种,如RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等,本领域技术人员在实现本实施例的机台软件的加密时,可以根据实际情况,选择适当的非对称加密算法,对所述第一拼接数据进行第二次加密,生成第二密文数据。

密码散列函数算法是一种单向函数,要由散列函数输出的结果一般称为摘要。

目前密码散列函数算法有很多中,例如:MD5算法,本领域技术人员在实现本实施例的机台软件的加密方法时,可以根据实际情况,选择适当的密码散列函数算法,对所述第一拼接数据进行第二次加密,生成第二密文数据。

需要说明的是,本实施例以非对称加密和密码散列函数算法为例,但不限于此,本实施例同样适用对称加密。即使用对称加密算法对所述第一拼接数据进行第二次加密,生成第二密文数据。优选地,所述对称加密算法包括:DES、3DES、RC2、RC4、RC5和Blowfish算法中的一种。

步骤105:将所述第二密文数据与预先生成的密文数据进行比较,若所述第二密文数据与所述预先生成的密文数据不同,则执行步骤106,若相同,则执行步骤107。

在本实施中,可以通过以下方式预先生成密文数据的步骤包括:

获取样本注册表信息中的样本固有信息。

对所述样本固有信息进行第一次加密,生成第三密文数据。

对所述第三密文数据和所述样本固有信息进行拼装,生成第二拼接数据。

对所述第二拼接数据进行第二次加密,生成第四密文数据,将所述第四密文数据作为预先生成密文数据。

其中,第三密文数据和第四密文数据均是预先生成的,并且第三密文数据与第一密文数据相对应,也就是说,在进行密文验证时,第一密文数据与第三密文数据进行比对,若一致,验证通过,若不一致,验证失败。

第四密文数据与第二密文数据相对应,也就是说,在进行密文验证时,第二密文数据与第四密文数据进行比对,根据比较结果执行不同的操作。

需要说明的是,第一次加密和第二次加密所采用的加密算法均是相同的,参见前面的加密算法即可,对此不在赘述。

步骤106:禁止启动所述机台软件并清除所述机台软件的内存数据。

步骤107:认为第二密文数据与预先生成的密文数据对比成功,也就是说,客户端使用的密钥与预先生成的密钥是相同,启动机台软件的主程序。

在实际应用中,该加密的过程可以深度隐匿于所述机台软件的源代码中,这样当机台软件的可执行文件(也可以理解为源代码)部署在终端时,可以将第二密文数据与预先生成的密文数据进行比较,若第二密文数据与预先生成的密文数据不同,认为对比失败,但是机台软件的主程序也不会提示密文比较失败,同时会清除机台软件的主程序的内存数据,并提示主程序不启动,这时即使用户再多次重新编码,破坏的主程序也将无法再次启动,有效的避免了非法拷贝软件源代码进行修改牟利的情况,保证了软件源代码的安全性。内存数据一般可以是静态数据,例如:配置文件信息、或者其他启动程序需要的信息等等,也可以为其他信息,对此本申请不做具体限制。

序需要说明的是,本发明实施例涉及到的密文数据也可以理解为密钥,只有密钥相同,才可以进行机台软件的主程序的启动,。

本实施例,本申请获取指定终端的注册表信息中的固有信息,并对注册表信息中的固有信息进行两次加密,生成第二密文数据,这样在指定终端注册表信息发生变化时,注册表信息中的固有信息也不会发生变化,并且是对注册表的固有信息进行加密,这样使得生成的第二密文数据比较隐蔽,不容易被窃取;将所述第二密文数据与预先生成的密文数据进行比较,若所述第二密文数据与所述预先生成的密文数据不同,则禁止启动所述机台软件并清除所述机台软件的内存数据,同时主程序并不做任何提示,只是不启动,这时即使用户再进行多次编码的修改,破坏的主程序也将无法再次启动,有效的避免了非法拷贝软件的源代码进行修改牟利的情况,保证了软件源代码的安全性和版权,若所述第二密文数据与所述预先生成的密文数据相同,则启动机台软件。

需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。

基于上述方法实施例的说明,本申请还提供了相应的装置实施例,来实现上述方法实施例所述的内容。

参照图2,其示出了本申请实施例所述一种机台软件的启动装置的结构示意图,具体包括:

获取模块201,用于获取指定终端的注册表信息中的固有信息。

第一加密模块202,用于对所述注册表信息中的固有信息进行第一次加密,生成第一密文数据。

拼装模块203,用于对所述第一密文数据和所述固有信息进行拼装,生成第一拼接数据。

第二加密模块204,用于对所述第一拼接数据进行第二次加密,生成第二密文数据。

比较输出模块205,用于将所述第二密文数据与预先生成的密文数据进行比较,若比较结果为所述第二密文数据与所述预先生成的密文数据不同,则禁止启动所述机台软件并清除所述机台软件的内存数据。

所述比较输出模块205,还用于比较所述第二密文数据与所述预先生成的密文数据是否相同,若比较结果为所述第二密文数据与所述预先生成的密文数据相同,则启动所述机台软件。

可选的,所述第一加密模块,用于使用非对称加密算法或者密码散列函数算法对所述注册表信息中的固有信息进行第一次加密,生成所述第一密文数据。

可选的,所述第二加密模块,用于使用非对称加密算法或者密码散列函数算法对所述第一拼接数据进行第二次加密,生成所述第二密文数据。

可选的,所述比较输出模块用于预先生成密文数据的包括:

样本模块,用于获取样本注册表信息中的样本固有信息;

第三加密模块,用于对所述样本固有信息进行第一次加密,生成第三密文数据;

第二拼装模块,用于对所述第三密文数据和所述样本固有信息进行拼装,生成第二拼接数据;

第四加密模块,用于对所述第二拼接数据进行第二次加密,生成第四密文数据,将所述第四密文数据作为预先生成密文数据。

可选的,所述拼装模块,用于通过Base64编码对所述第一密文数据和所述注册表信息进行拼装,生成第一拼接数据。

本实施例,本申请获取指定终端的注册表信息中的固有信息,并对注册表信息中的固有信息进行两次加密,生成第二密文数据,这样在指定终端注册表信息发生变化时,注册表信息中的固有信息也不会发生变化,并且是对注册表的固有信息进行加密,这样使得生成的第二密文数据比较隐蔽,不容易被窃取;将所述第二密文数据与预先生成的密文数据进行比较,若所述第二密文数据与所述预先生成的密文数据不同,则禁止启动所述机台软件并清除所述机台软件的内存数据,同时主程序并不做任何提示,只是不启动,这时即使用户再进行多次编码的修改,破坏的主程序也将无法再次启动,有效的避免了非法拷贝软件的源代码进行修改牟利的情况,保证了软件源代码的安全性和版权,若所述第二密文数据与所述预先生成的密文数据相同,则启动机台软件。

对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1所示方法实施例的部分说明即可。

本申请实施例还公开了一种机台设备,包括:

一个或多个处理器;

存储装置,其上存储有一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述所述的方法。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本申请的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

在本申请中,“组件”、“装置”、“系统”等等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是组件。一个或多个组件可在执行的过程和/或线程中,并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

以上对本申请所提供的一种机台软件的启动方法、装置以及机台设备,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种机台软件的启动方法、装置及机台设备
  • 一种环冷机台车车轮检测方法、装置、设备及介质
技术分类

06120112182881