程序文件安装方法和装置与流程

文档序号:12469645阅读:196来源:国知局
程序文件安装方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种程序文件安装方法和装置。



背景技术:

在大部分的计算机系统中,要防止非法的应用程序安装,一方面,要防止被篡改的应用程序安装,另一方面,要防止没有安装权限的应用程序安装,例如,在学生的平板电脑中,仅会允许安装某些特定的应用程序。现有的防止非法应用程序安装的技术方案主要是通过采用安装口令或者采用数字签名来实现。

在采用安装口令的技术方案中,每一个应用程序具有唯一对应的用于防止非法安装的安装口令,每当安装应用程序时,都需要管理员手动输入相应的安装口令进行验证,当验证通过时才可安装该应用程序。在该技术方案中,由于每一次安装应用程序时都需要管理员亲自手动输入安装口令,若要在1000台计算机中安装同一个应用程序,则需要管理员重复手动输入1000次安装口令,因此安装过程的工作量大,效率低下,

在采用数字签名的技术方案中,在发布应用程序之前,根据应用程序的内容和私钥生成相应的密文,并将该密文存放于应用程序中;在安装应用程序时,先将应用程序中的密文提取出来,再使用相应的公钥对该密文进行解密,若解密成功,则安装该应用程序,若不成功,则不安装。在该技术方案中,由于根据应用程序的内容和私钥生成相应的密文后,会将该密文存放于应用程序中,因此该过程会破坏原始的应用程序文件数据,容易造成应用程序文件出错;在安装过程中,需要先将应用程序中的密文提取出来,再进行解密,因此安装的过程繁琐复杂,安装的效率低下。



技术实现要素:

本发明提出一种程序文件安装方法和装置,能够保证程序文件的完整性,且能够提高程序文件安装过程的效率。

本发明提出一种程序文件安装方法,具体包括:

获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据;

对所述第一文件数据进行第一加密运算,获得第一密文;

对比所述程序文件的位于所述程序文件的文件数据的外部的文件标签和所述第一密文,若相同,则确定所述程序文件为合法安装文件,并安装所述程序文件,若不相同,则不安装所述程序文件;其中,所述合法安装文件的文件标签通过对第二文件数据进行所述第一加密运算生成;所述第二文件数据通过读取所述合法安装文件中的位于所述指定位置的文件数据获得。

进一步地,在所述获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据之后,所述对所述第一文件数据进行第一加密运算,获得第一密文之前,还包括:

将预先设置的第一密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加预先设置的第二密码并进行所述第一加密运算生成;所述第二密码与所述第一密码相同;

或者,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对所述第二密码进行第二加密运算生成;所述第二加密密码与所述第一密码相同。

进一步地,在所述获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据之后,所述对所述第一文件数据进行第一加密运算,获得第一密文之前,还包括:

对预先设置的第一密码进行第二加密运算,获得第一加密密码;

将所述第一加密密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对预先设置的第二密码进行所述第二加密运算生成;所述第二密码与所述第一密码相同。

进一步地,所述第一加密运算为不可逆运算。

进一步地,所述文件标签为所述程序文件的文件名全部或者所述程序文件的文件名中的一部分。

相应地,本发明还提供了一种程序文件安装装置,具体包括:

第一文件数据获取模块,用于获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据;

第一密文获取模块,用于对所述第一文件数据进行第一加密运算,获得第一密文;以及,

安装模块,用于对比所述程序文件的位于所述程序文件的文件数据的外部的文件标签和所述第一密文,若相同,则确定所述程序文件为合法安装文件,并安装所述程序文件,若不相同,则不安装所述程序文件;其中,所述合法安装文件的文件标签通过对第二文件数据进行所述第一加密运算生成;所述第二文件数据通过读取所述合法安装文件中的位于所述指定位置的文件数据获得。

进一步地,第一密码添加模块,用于将预先设置的第一密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加预先设置的第二密码并进行所述第一加密运算生成;所述第二密码与所述第一密码相同;

或者,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对所述第二密码进行第二加密运算生成;所述第二加密密码与所述第一密码相同。

进一步地,第一加密密码获得模块,用于对预先设置的第一密码进行第二加密运算,获得第一加密密码;以及,

第一加密密码添加模块,用于将所述第一加密密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对预先设置的第二密码进行所述第二加密运算生成;所述第二密码与所述第一密码相同。

进一步地,所述第一加密运算为不可逆运算。

进一步地,所述文件标签为所述程序文件的文件名全部或者所述程序文件的文件名中的一部分。

实施本发明,具有如下有益效果:

本发明实施例提供的程序文件安装方法和装置,由于在安装程序文件的过程中,只需要从程序文件中读取部分或者全部数据即可进行程序文件合法性的验证,而不需要对程序文件的内容进行拆分解析,因此能够在防止非法的程序文件安装的同时,保证程序文件的完整性,降低程序文件安装的出错率,并且能够提高对程序文件的合法性进行验证的过程的效率,进而提高程序文件安装过程的效率。

附图说明

图1是本发明提供的程序文件安装方法的一个实施例的流程示意图;

图2是本发明提供的程序文件安装装置的一个实施例的结构示意图。

具体实施方式

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

参见图1,是本发明提供的程序文件安装方法的一个实施例的流程示意图,包括步骤S11至S13,具体如下:

S11:获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据;

S12:对所述第一文件数据进行第一加密运算,获得第一密文;

S13:对比所述程序文件的位于所述程序文件的文件数据的外部的文件标签和所述第一密文,若相同,则确定所述程序文件为合法安装文件,并安装所述程序文件,若不相同,则不安装所述程序文件;其中,所述合法安装文件的文件标签通过对第二文件数据进行所述第一加密运算生成;所述第二文件数据通过读取所述合法安装文件中的位于所述指定位置的文件数据获得。

需要说明的是,本发明实施例所提供的程序文件安装方法由客户端执行。程序文件预先存储于服务器端或者其他存储介质(如SD卡、U盘或者光盘等)中。客户端在安装某个程序文件时,首先,从存储该程序文件的服务器端或者其他存储介质中获取该程序文件,并从该程序文件中读取部分或者全部文件数据;随后,对该部分或者全部文件数据进行加密运算,从而获得一个密文;最后,通过对比所获得的密文和该程序文件的文件标签进行校验,若所获得的密文与该程序文件的文件标签相同,则说明该程序文件没有被篡改且具有安装权限,校验通过,确定该程序文件为合法安装文件,客户端安装该程序文件,若所获得的密文与程序文件的文件标签不相同,则说明该程序文件已被篡改或者没有安装权限,校验失败,确定该程序文件为非法安装文件,客户端不安装该程序文件。SD卡或者U盘或者光盘等存储介质中的程序文件通过从服务器端中下载获得。服务器端用于发布和存储程序文件。在合法安装文件被发送至服务器端发布之前,用于制作或者处理该合法安装文件的其他主机端首先读取该合法安装文件中的部分或者全部数据,并对该部分或者全部数据进行加密运算,从而获得一个密文,再将该密文作为该合法安装文件的文件标签,并将该合法安装文件发送至服务器端中发布。特别地,文件标签的生成过程由服务器端完成。需要进一步说明的是,文件标签位于程序文件的文件数据的外部,即文件标签不包括于程序文件的内容之中,因此不会破坏程序文件本身的数据,保证了程序文件的完整性,例如,文件标签可以为程序文件的文件名等。

在一个优选地实施方式中,客户端在需要安装某一程序文件时,从存储该程序文件的服务器端或者其他存储介质中获取该程序文件,并读取该程序文件中的位于指定位置上的文件数据,从而获得第一文件数据;随后,对该第一文件数据进行第一加密运算,从而获得第一密文;最后,对比该第一密文与该程序文件的文件标签是否相同,若相同,则说明该程序文件没有被篡改且具有安装权限,是合法安装文件,客户端安装该程序文件,若不相同,则说明该程序文件已被篡改或者没有安装权限,是非法安装文件,客户端不安装该程序文件。合法安装文件的文件标签由某一主机端或者服务器端通过对读取该合法安装文件中的位于指定位置上的文件数据所获得的第二文件数据进行加密运算生成。其中,主机端、服务器端和客户端读取的文件数据的位置,以及所分别进行的加密运算的种类预先存储于各自的系统中。若在文件标签的生成过程中所读取的文件数据与客户端在相同位置上所读取的文件数据不相同,则认为该应用程序在传输的过程中被篡改。若在文件标签的生成过程中的读取文件数据的位置与客户端读取文件数据的位置不同,或者所采用的加密算法不同,则认为该程序文件在该客户端上没有安装权限。

例如,假设某一应用程序文件的文件标签为该应用程序文件的文件名,该文件名的生成过程由某一主机端执行,假设该主机端自身系统中预先设置的读取文件数据的位置为第0个字节至第3个字节,所进行的加密运算为MD5加密运算,则该主机端读取该应用程序文件中的第0个字节至第3个字节的文件数据“ABCD”,从而获得第二文件数据“ABCD”,并对该第二文件数据进行MD5加密运算获得密文“cb08ca4a7bb5f9683c19133a84872ca7”,并以该密文作为该应用程序的文件名,最后将该应用程序文件发送至服务器端中发布。假设本例中的客户端直接从服务器端中获取该应用程序文件进行安装,那么若某一客户端需要安装该应用程序,则从服务器端中下载该应用程序文件,并根据自身系统中的设置读取该应用程序中位于指定位置的文件数据,从而获得第一文件数据,随后对该第一文件数据进行第一加密运算,若所获得的密文为“cb08ca4a7bb5f9683c19133a84872ca7”,则认为该应用程序文件没有被篡改且具有安装权限,是合法的安装文件,客户端安装该应用程序,否则客户端不安装该应用程序。若客户端读取该应用程序文件的第0个字节至第3个字节的文件数据所获得的第一文件数据不是“ABCD”,或者客户端读取文件数据的位置不是第0个字节至第3个字节,或者客户端所采用的第一加密算法不是MD5算法,都有可能造成客户端最后获得的密文不是“cb08ca4a7bb5f9683c19133a84872ca7”,此时客户端判定该应用程序为非法的应用程序,不可安装。

特别地,若客户端从服务器端或者其他存储介质中所获取的程序文件中不包括文件标签,则认为该程序文件在客户端中没有安装权限,确定为非法安装文件,客户端不安装该程序文件。例如,假设学习类的应用程序文件均依照本发明的方法生成相应的文件标签,而游戏类的应用程序文件则均没有依照本发明的方法生成相应的文件标签,那么依照本发明的程序文件安装方法进行应用程序文件安装的学生平板电脑仅可以安装学习类的应用程序文件,而不可以安装游戏类的应用程序文件。

由于在安装程序文件的过程中,只需要从程序文件中读取部分或者全部数据即可进行程序文件合法性的验证,而不需要对程序文件的内容进行拆分解析,因此能够在防止非法的程序文件安装的同时,保证程序文件的完整性,降低程序文件安装的出错率,并且能够提高对程序文件的合法性进行验证的过程的效率,进而提高程序文件安装过程的效率。

在另一个优选地实施方式中,在所述获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据之后,所述对所述第一文件数据进行第一加密运算,获得第一密文之前,还包括:

将预先设置的第一密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加预先设置的第二密码并进行所述第一加密运算生成;所述第二密码与所述第一密码相同;

或者,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对所述第二密码进行第二加密运算生成;所述第二加密密码与所述第一密码相同。

需要说明的是,客户端在需要安装某一程序文件时,从存储该程序文件的服务器端或者其他存储介质中获取该程序文件,并读取该程序文件中的位于指定位置上的文件数据,从而获得第一文件数据;随后,对该第一文件数据添加第一密码并进行第一加密运算,从而获得第一密文;最后,对比该第一密文与该程序文件的文件标签是否相同,若相同,则说明该程序文件没有被篡改且具有安装权限,是合法安装文件,客户端安装该程序文件,若不相同,则说明该程序文件已被篡改或者没有安装权限,是非法安装文件,客户端不安装该程序文件。合法安装文件的文件标签由某一主机端或者服务器端通过对添加了第二密码或者添加了对第二密码进行加密运算所生成的第二加密密码的第二文件数据进行加密运算生成。对第二密码进行的加密运算与对第二文件数据进行的加密运算可以相同,也可以不同。其中,主机端、服务器端和客户端读取文件数据的位置,以及所分别进行的加密运算的种类预先存储于各自的系统中。第一密码预先存储于客户端的系统中或者在安装程序文件的过程中由用户手动输入。第二密码预先存储于主机端或者服务器端的系统中,或者在文件名生成过程中由管理员手动输入。若在文件标签的生成过程中所读取的文件数据与客户端在相同位置上所读取的文件数据不相同,则认为该应用程序在传输的过程中被篡改。若在文件标签的生成过程中的读取文件数据的位置与客户端读取文件数据的位置不同,或者所采用的加密算法不同,则认为该程序文件在该客户端上没有安装权限。当文件标签的生成过程中在第二文件数据中所添加的是第二密码时,若第一密码与该第二密码不相同,则认为该程序文件在该客户端上没有安装权限;当文件标签的生成过程中在第二文件数据中所添加的是第二加密密码时,若第一密码与该第二加密密码不相同,则认为该程序文件在该客户端上没有安装权限。

通过在安装过程中引入密码参与程序文件的合法性验证,提高了防止非法的程序文件安装的强度。

在另一个优选地实施方式中,在所述获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据之后,所述对所述第一文件数据进行第一加密运算,获得第一密文之前,还包括:

对预先设置的第一密码进行第二加密运算,获得第一加密密码;

将所述第一加密密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对预先设置的第二密码进行所述第二加密运算生成;所述第二密码与所述第一密码相同。

需要说明的是,客户端在需要安装某一程序文件时,从存储该程序文件的服务器端或者其他存储介质中获取该程序文件,并读取该程序文件中的位于指定位置上的文件数据,从而获得第一文件数据;随后,对该第一文件数据添加对第一密码进行加密运算所生成的第一加密密码并进行第一加密运算,从而获得第一密文;最后,对比该第一密文与该程序文件的文件标签是否相同,若相同,则说明该程序文件没有被篡改且具有安装权限,是合法安装文件,客户端安装该程序文件,若不相同,则说明该程序文件已被篡改或者没有安装权限,是非法安装文件,客户端不安装该程序文件。合法安装文件的文件标签由某一主机端或者服务器端通过对添加了对第二密码进行加密运算所生成的第二加密密码的第二文件数据进行加密运算生成。对第二密码进行的加密运算与对第二文件数据进行的加密运算可以相同,也可以不同。其中,主机端、服务器端和客户端读取文件数据的位置,以及所分别进行的加密运算的种类预先存储于各自的系统中。第一密码预先存储于客户端的系统中或者在安装程序文件的过程中由用户手动输入。第二密码预先存储于主机端或者服务器端的系统中,或者在文件标签的生成过程中由管理员手动输入。若在文件标签的生成过程中所读取的文件数据与客户端在相同位置上所读取的文件数据不相同,则认为该应用程序在传输的过程中被篡改。若在文件标签的生成过程中的读取文件数据的位置与客户端读取文件数据的位置不同,或者所采用的加密算法不同,或者第一密码与第二密码不相同,则认为该程序文件在该客户端上没有安装权限。

通过在安装过程中引入密码参与程序文件的合法性验证,提高了防止非法的程序文件安装的强度。

进一步地,所述第一加密运算为不可逆运算。

需要说明的是,在文件名生成过程中对第二文件数据所进行的加密运算以及客户端对第一文件数据所进行的第一加密运算均为不可逆的运算。譬如,该加密运算可以为CRC、MD4、MD5、SHA等加密算法运算。

在文件标签的生成过程中对第二文件数据所进行的加密运算以及客户端对第一文件数据所进行的第一加密运算均为不可逆的运算,能够提高破译程序文件的文件标签的难度,从而提高篡改程序文件的文件标签的难度,进而能够进一步地提高防止非法的程序文件安装的强度。

进一步地,所述文件标签为所述程序文件的文件名全部或者所述程序文件的文件名中的一部分。

需要说明的是,文件标签为程序文件的文件名的全部或者文件名的一部分,因此,当客户端对某一从服务器端或者其他存储介质中获取的程序文件进行合法性验证时,只需要将运算得到的密文与该程序文件的文件名进行对比,即可判断该程序文件是否为合法安装文件。

本发明实施例提供的程序文件安装方法,由于在安装程序文件的过程中,只需要从程序文件中读取部分或者全部数据即可进行程序文件合法性的验证,而不需要对程序文件的内容进行拆分解析,因此能够在防止非法的程序文件安装的同时,保证程序文件的完整性,降低程序文件安装的出错率,并且能够提高对程序文件的合法性进行验证的过程的效率,进而提高程序文件安装过程的效率。并且,通过在安装过程中引入密码参与程序文件的合法性验证,提高了防止非法的程序文件安装的强度。另外,在文件标签的生成过程中对第二文件数据所进行的加密运算以及客户端对第一文件数据所进行的第一加密运算均为不可逆的运算,能够提高破译程序文件的文件标签的难度,从而提高篡改程序文件的文件标签的难度,进而能够进一步地提高防止非法的程序文件安装的强度。

相应地,本发明还提供一种程序文件安装装置,能够实现上述实施例中的程序文件安装方法的所有流程。

参见图2,是本发明提供的程序文件安装装置的一个实施例的结构示意图,具体如下:

第一文件数据获取模块21,用于获取待安装的程序文件,并读取所述程序文件中的位于指定位置的文件数据,获得第一文件数据;

第一密文获取模块22,用于对所述第一文件数据进行第一加密运算,获得第一密文;以及,

安装模块23,用于对比所述程序文件的位于所述程序文件的文件数据的外部的文件标签和所述第一密文,若相同,则确定所述程序文件为合法安装文件,并安装所述程序文件,若不相同,则不安装所述程序文件;其中,所述合法安装文件的文件标签通过对第二文件数据进行所述第一加密运算生成;所述第二文件数据通过读取所述合法安装文件中的位于所述指定位置的文件数据获得。

在另一个优选地实施方式中,所述应用程序文件安装装置,还包括:

第一密码添加模块,用于将预先设置的第一密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加预先设置的第二密码并进行所述第一加密运算生成;所述第二密码与所述第一密码相同;

或者,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对所述第二密码进行第二加密运算生成;所述第二加密密码与所述第一密码相同。

在另一个优选地实施方式中,所述应用程序文件安装装置,还包括:

第一加密密码获得模块,用于对预先设置的第一密码进行第二加密运算,获得第一加密密码;以及,

第一加密密码添加模块,用于将所述第一加密密码添加至所述第一文件数据中;

则,所述合法安装文件的文件标签通过对所述第二文件数据添加第二加密密码并进行所述第一加密运算生成;所述第二加密密码通过对预先设置的第二密码进行所述第二加密运算生成;所述第二密码与所述第一密码相同。

进一步地,所述第一加密运算为不可逆运算。

进一步地,所述文件标签为所述程序文件的文件名全部或者所述程序文件的文件名中的一部分。

本发明实施例提供的程序文件安装装置,由于在安装程序文件的过程中,只需要从程序文件中读取部分或者全部数据即可进行程序文件合法性的验证,而不需要对程序文件的内容进行拆分解析,因此能够在防止非法的程序文件安装的同时,保证程序文件的完整性,降低程序文件安装的出错率,并且能够提高对程序文件的合法性进行验证的过程的效率,进而提高程序文件安装过程的效率。并且,通过在安装过程中引入密码参与程文件的合法性验证,提高了防止非法的程序文件安装的强度。另外,在文件标签的生成过程中对第二文件数据所进行的加密运算以及客户端对第一文件数据所进行的第一加密运算均为不可逆的运算,能够提高破译程序文件的文件标签的难度,从而提高篡改程序文件的文件标签的难度,进而能够进一步地提高防止非法的程序文件安装的强度。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

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