文件加密方法、文件解密方法及装置与流程

文档序号:12600677阅读:273来源:国知局
文件加密方法、文件解密方法及装置与流程

本发明涉及互联网技术领域,特别是涉及一种文件加密方法、文件解密方法及装置。



背景技术:

在互联网时代,信息安全是非常重要的,偏重于个人信息的保护方式也越来越重要,从而孕育出很多加密的算法,用户可利用现有的加密算法然后加上自己的一些想法来处理一些需要加密的信息,从而从一定程度上来保障用户信息或者其他重要的信息。

现有技术中,大多采用一次性加密文件的方式,相应地,用户也只需进行一次解密即可得到想要的数据,例如,采用SHA(Secure Hash Algorithm)加密算法、Base64加密算法等把文件内容加密之后打包成二进制内容,在解密时,则将二进制内容转化为正常内容然后进行解密,从而得到想要的数据。但是,由于上述方式只对数据进行一次加密,并且将有用数据作为一个整体进行加密,黑客或者恶意攻击者很可能通过对截获的密文进行破解,因此数据安全性较低,造成数据安全隐患。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的文件加密方法、文件解密方法及装置。

依据本发明的一个方面,提供了一种文件加密方法,包括:

判断待加密的文件的长度是否超过预定总长度;

若是,则以第一预设长度作为预定分段长度;

按照所述预定分段长度对所述文件进行分段处理,获得至少两个子文件;

利用预设加密算法分别对各子文件进行加密,获得至少两个加密子文件;

根据所述至少两个加密子文件生成加密文件。

可选地,所述方法还包括:

若所述文件的长度未超过所述预定总长度,则判断所述文件的长度是否超过第二预设长度;

若是,则以第二预设长度作为所述预定分段长度。

可选地,所述第一预设长度和所述第二预设长度皆不超过所述预定总长度,且所述第二预设长度小于所述第一预设长度。

可选地,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

可选地,根据所述至少两个加密子文件生成加密文件,包括:

依次组合以下内容:占用第一字节长度的头文件、占用第二字节长度的所述预定分段长度、依次排列的各加密子文件;其中,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致;

打包所述组合后的内容,获得所述加密文件。

可选地,所述预设加密算法为RSA非对称加密算法。

可选地,利用预设加密算法分别对各子文件进行加密,包括:

利用密钥对中的公钥分别对所述各子文件进行加密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

依据本发明的另一个方面,提供了一种文件解密方法,包括:

获取加密文件,并确定对所述加密文件加密的预设加密算法,所述加密文件中包括至少两个加密子文件;

从所述加密文件中获取各加密子文件;

利用所述预设加密算法对应的解密算法,分别对所述各加密子文件进行解密,获得至少两个子文件;

根据所述至少两个子文件生成解密后的文件。

可选地,所述加密文件中依次包括:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的至少两个加密子文件,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

可选地,所述从所述加密文件中获取各加密子文件,包括:

根据所述第一字节长度、所述第二字节长度以及各加密子文件之间的排列次序,确定所述加密文件中各加密子文件的位置;

根据所述各加密子文件的位置,从所述加密文件中获取所述各加密子文件。

可选地,根据所述至少两个子文件生成解密后的文件,包括:

按照各子文件在所述文件中的位置关系组合所述各子文件,获得所述解密后的文件。

可选地,所述预设加密算法为RSA非对称加密算法。

可选地,分别对所述各加密子文件进行解密,包括:

利用密钥对中的私钥分别对所述各加密子文件进行解密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

依据本发明的另一个方面,提供了一种文件加密装置,包括:

第一判断模块,适于判断待加密的文件的长度是否超过预定总长度;

第一确定模块,适于若所述第一判断模块判定所述待加密的文件的长度超过所述预定总长度,则以第一预设长度作为预定分段长度;

分段模块,适于按照所述预定分段长度对所述文件进行分段处理,获得至少两个子文件;

加密模块,适于利用预设加密算法分别对各子文件进行加密,获得至少两个加密子文件;

第一生成模块,适于根据所述至少两个加密子文件生成加密文件。

可选地,所述装置还包括:

第二判断模块,适于若所述第一判断模块判定所述文件的长度未超过所述预定总长度,则判断所述文件的长度是否超过第二预设长度;

第二确定模块,适于若所述第二判断模块判定所述文件的长度超过所述第二预设长度,则以第二预设长度作为所述预定分段长度。

可选地,所述第一预设长度和所述第二预设长度皆不超过所述预定总长度,且所述第二预设长度小于所述第一预设长度。

可选地,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

可选地,所述第一生成模块,适于依次组合以下内容:占用第一字节长度的头文件、占用第二字节长度的所述预定分段长度、依次排列的各加密子文件;其中,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致;打包所述组合后的内容,获得所述加密文件。

可选地,所述预设加密算法为RSA非对称加密算法。

可选地,所述加密模块,适于利用密钥对中的公钥分别对所述各子文件进行加密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

依据本发明的另一个方面,提供了一种文件解密装置,包括:

第一获取模块,适于获取加密文件,并确定对所述加密文件加密的预设加密算法,所述加密文件中包括至少两个加密子文件;

第二获取模块,适于从所述加密文件中获取各加密子文件;

解密模块,适于利用所述预设加密算法对应的解密算法,分别对所述各加密子文件进行解密,获得至少两个子文件;

第二生成模块,适于根据所述至少两个子文件生成解密后的文件。

可选地,所述加密文件中依次包括:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的至少两个加密子文件,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

可选地,所述第二获取模块,适于根据所述第一字节长度、所述第二字节长度以及各加密子文件之间的排列次序,确定所述加密文件中各加密子文件的位置;根据所述各加密子文件的位置,从所述加密文件中获取各加密子文件。

可选地,所述第二生成模块,适于按照各子文件在所述文件中的位置关系组合所述各子文件,获得所述解密后的文件。

可选地,所述预设加密算法为RSA非对称加密算法。

可选地,所述解密模块,还适于利用密钥对中的私钥分别对所述各子文件进行解密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

采用本发明实施例提供的技术方案,能够在待加密的文件的长度超过预定总长度时,以第一预设长度作为预定分段长度对文件进行分段处理,并分别对分段后的各子文件进行加密,使得待加密的文件能够被加密为多个加密子文件,相较于现有的不依赖于文件长度、将文件作为一个整体进行一次性加密的方案而言,该技术方案中的加密算法能够有效防止黑客或恶意攻击者对加密文件的破解,即使破解了其中某个加密子文件,也无法获取到文件中的数据明文,因此大大提高了文件的保密性,确保数据无安全隐患。并且,该技术方案能够根据多个加密子文件生成加密文件,确保了数据的完整性。

进一步地,本发明实施例中,在生成加密文件时,能够依次组合占用第一字节长度的头文件、占用第二字节长度的预定分段长度以及依次排列的各加密子文件,使得加密文件中的各加密子文件都对应有明确的位置信息,从而使用户读取加密文件中的各加密子文件时,能够根据上述依次排列的数据准确读取出各加密子文件。

进一步地,本发明实施例中,对文件解密时,能够首先从加密文件中获取各加密子文件,并分别对各加密子文件进行解密,然后根据解密后的各子文件生成文件,即,用户需对每个加密子文件都分别进行解密才能获得文件中的数据明文,因此,该技术方案能够有效防止黑客或恶意攻击者对加密文件的破解,即使破解了其中某个加密子文件,也无法获取到文件中的数据明文,因此大大提高了文件的保密性,确保数据无安全隐患。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是根据本发明一个实施例的一种文件加密方法的示意性流程图;

图2是根据本发明另一个实施例的一种文件加密方法的示意性流程图;

图3是根据本发明一个实施例的一种文件解密方法的示意性流程图;

图4是根据本发明一个实施例的一种文件加密装置的示意性框图;

图5是根据本发明另一个实施例的一种文件加密装置的示意性框图;

图6是根据本发明一个实施例的一种文件解密装置的示意性框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1是根据本发明一个实施例的一种文件加密方法的示意性流程图。如图1所示,该方法一般性地可包括步骤S101-S105:

步骤S101,判断待加密的文件的长度是否超过预定总长度;若是,则执行步骤S102。

步骤S102,以第一预设长度作为预定分段长度。

步骤S103,按照预定分段长度对文件进行分段处理,获得至少两个子文件。

步骤S104,利用预设加密算法分别对各子文件进行加密,获得至少两个加密子文件。

其中,预设加密算法可以是RSA非对称加密算法、SHA加密算法、Base64加密算法等任一种加密算法。

步骤S105,根据至少两个加密子文件生成加密文件。

采用本发明实施例提供的技术方案,能够在待加密的文件的长度超过预定总长度时,以第一预设长度作为预定分段长度对文件进行分段处理,并分别对分段后的各子文件进行加密,使得待加密的文件能够被加密为多个加密子文件,相较于现有的不依赖于文件长度、将文件作为一个整体进行一次性加密的方案而言,该技术方案中的加密算法能够有效防止黑客或恶意攻击者对加密文件的破解,即使破解了其中某个加密子文件,也无法获取到文件中的数据明文,因此大大提高了文件的保密性,确保数据无安全隐患。并且,该技术方案能够根据多个加密子文件生成加密文件,确保了数据的完整性。

在另一实施例中,若执行步骤S101时判定待加密的文件的长度未超过预定总长度,可以直接对文件进行整体加密,不再分段。

在另一个实施例中,执行步骤S101时,若判定待加密的文件的长度未超过预定总长度,则可以继续执行如图2所示的步骤S106-S108:

步骤S106,判断文件的长度是否超过第二预设长度;若是,则执行步骤S107;若否,则执行步骤S108。

步骤S107,以第二预设长度作为预定分段长度。然后返回步骤S103,按照预定分段长度对文件进行分段处理,进而对分段后的各子文件进行加密。

步骤S108,对整个文件进行加密。

该实施例中,第一预设长度和第二预设长度皆不超过预定总长度,且第二预设长度小于第一预设长度。当然,若判定文件的长度未超过第二预设长度时,还可继续判断文件的长度是否超过第三预设长度(第三预设长度小于第二预设长度),并在文件的长度超过第三预设长度时以第三预设长度作为预定分段长度,以此类推。判断的次数可由用户根据文件的长度来定义,当文件的长度足够小(例如50字节)时,则不需要再将文件分段加密。

举例而言,预定总长度为120字节,第一预设长度为100字节,第二预设长度为60字节,第三预设长度为40字节。第一种情况:假设待加密的文件的长度为180字节,由于文件的长度超过预定总长度120字节,则以第一预设长度100字节为预定分段长度对文件进行分段,得到长度分别为100字节和80字节的两个子文件,然后分别对这两个子文件进行加密,获得两个加密子文件,最后根据两个加密子文件生成加密文件。第二种情况:假设待加密的文件的长度为80字节,此时文件的长度未超过预定总长度120字节,因此可判断文件的长度是否超过第二预设长度60字节,由于文件的长度(80字节)已超过第二预设长度60字节,因此可将第二预设长度60字节作为预定分段长度对文件进行分段,得到长度分别为60字节和20字节的两个子文件,然后分别对这两个子文件进行加密,获得两个加密子文件,最后根据两个加密子文件生成加密文件。第三种情况:假设待加密的文件的长度为30字节,由于文件的长度(30字节)未超过第三预设长度,则不对文件进行分段处理,此时可将文件作为一个整体进行加密。

将待加密的文件进行分段以获得多个子文件之后,需要对各子文件进行加密以获得各加密子文件。本实施例中以预设加密算法为RSA非对称加密算法为例来说明如何对各子文件进行加密。当预设加密算法为RSA非对称加密算法时,该加密算法会预先生成密钥对,其中包括相互配对的公钥和私钥,然后利用密钥对中的公钥分别对各子文件进行加密,得到各加密子文件,密钥对中的私钥用于对各加密子文件进行解密。在具体实施时,可以仅生成一对密钥对,然后利用其中的公钥分别对各子文件进行加密,即每个子文件加密时所使用的皆是相同的公钥,这样,在对各加密子文件进行解密时所使用的私钥也就相同。为了提高文件的保密性,还可以生成多个密钥对,每个密钥对对应一个子文件,即利用多个密钥对中的公钥分别对与各自相对应的子文件进行加密,这样,在对各加密子文件进行解密时所使用的私钥也就各不相同,从而提高对各加密子文件的解密难度,确保文件的安全性。

在一个实施例中,加密子文件中依次包括其对应的字节长度、校验位和加密内容。其中,加密子文件对应的字节长度可在子文件加密之后自动生成;校验位的占用字节长度可预先设定,例如2位校验位或8位校验位;加密内容则是对子文件中的原始文件内容进行加密得到的。

在一个实施例中,获得各加密子文件之后,继续执行步骤S105,即根据加密子文件生成加密文件,具体的,可按照如下方式生成加密文件:首先,依次组合以下内容:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的各加密子文件,其中,各加密子文件之间的排列次序与对应的各子文件在文件中的位置关系一致;其次,打包组合后的内容,获得加密文件。其中,头文件通常为占用16字节的二进制内容,第二字节长度与预定分段长度的值有关,通常情况下为4字节,每个加密子文件中依次包括各自对应的字节长度、校验位和加密内容。

举例而言,某段待加密的文件被分段成三个子文件,分别对每个子文件进行加密得到三个加密子文件,则根据这三个加密子文件所生成的加密文件为:头文件+预定分段长度+第一个加密子文件的字节长度+第一个加密子文件的校验位+第一个加密子文件的加密内容+第二个加密子文件的字节长度+第二个加密子文件的校验位+第二个加密子文件的加密内容+第三个加密子文件的字节长度+第三个加密子文件的校验位+第三个加密子文件的加密内容。

由此可知,该实施例在生成加密文件时,能够依次组合占用第一字节长度的头文件、占用第二字节长度的预定分段长度以及依次排列的各加密子文件,使得加密文件中的各加密子文件都对应有明确的位置信息,从而使用户读取加密文件中的各加密子文件时,能够根据上述依次排列的数据准确读取出各加密子文件。

图3是根据本发明一个实施例的一种文件解密方法的示意性流程图。如图3所示,该方法一般性地可包括步骤S301-S304:

步骤S301,获取加密文件,并确定对加密文件加密的预设加密算法,加密文件中包括至少两个加密子文件。

其中,预设加密算法可以是RSA非对称加密算法、SHA加密算法、Base64加密算法等任一种加密算法。

步骤S302,从加密文件中获取各加密子文件。

步骤S303,利用预设加密算法对应的解密算法,分别对各加密子文件进行解密,获得至少两个子文件。

步骤S304,根据至少两个子文件生成解密后的文件。

采用本发明实施例中的文件解密方法,在对文件解密时,能够首先从加密文件中获取各加密子文件,并分别对各加密子文件进行解密,然后根据解密后的各子文件生成文件,即,用户需对每个加密子文件都分别进行解密才能获得文件中的数据明文,因此,该技术方案能够有效防止黑客或恶意攻击者对加密文件的破解,即使破解了其中某个加密子文件,也无法获取到文件中的数据明文,因此大大提高了文件的保密性,确保数据无安全隐患。

在一个实施例中,加密文件中依次包括:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的至少两个加密子文件。其中,各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致,加密子文件中依次包括其对应的字节长度、校验位和加密内容。第一字节长度、第二字节长度、加密子文件对应的字节长度以及校验位是预先确定的,头文件通常为占用16字节的二进制内容,因此第一字节长度为16字节,第二字节长度与预定分段长度的值有关,通常情况下为4字节,加密内容则是对子文件中的原始文件内容进行加密得到的。

举例而言,获取到的加密文件包括:头文件+预定分段长度+第一个加密子文件的字节长度+第一个加密子文件的校验位+第一个加密子文件的加密内容+第二个加密子文件的字节长度+第二个加密子文件的校验位+第二个加密子文件的加密内容+第三个加密子文件的字节长度+第三个加密子文件的校验位+第三个加密子文件的加密内容。其中,“第一个加密子文件的字节长度+第一个加密子文件的校验位+第一个加密子文件的加密内容”为第一个加密子文件,“第二个加密子文件的字节长度+第二个加密子文件的校验位+第二个加密子文件的加密内容”为第二个加密子文件,“第三个加密子文件的字节长度+第三个加密子文件的校验位+第三个加密子文件的加密内容”为第三个加密子文件。

在一个实施例中,基于上述加密文件的组成,可按如下方式从加密文件中获取各加密子文件(即步骤S302):首先,根据第一字节长度、第二字节长度以及各加密子文件之间的排列次序,确定加密文件中各加密子文件的位置;其次,根据各加密子文件的位置,从加密文件中获取各加密子文件。例如,加密文件中共包括三个加密子文件,第一字节长度为16字节,第二字节长度为4字节,各加密子文件之间的排列次序与对应的各子文件在原始文件中的位置关系一致,那么,在获取各加密子文件时,可先获取16字节的头文件和4字节的预定分段长度,然后从预定分度长度之后即可读取到第一个加密子文件,其中包括第一个加密子文件对应的字节长度、校验位及加密内容,获取到第一个加密子文件之后,即可依次获取第二个加密子文件和第三个加密子文件。

在一个实施例中,获得各加密子文件之后,需要对各加密子文件进行解密以获得各子文件(即步骤S303)。本实施例中以预设加密算法为RSA非对称加密算法为例来说明如何对各子文件进行解密。当预设加密算法为RSA非对称加密算法时,则利用RSA非对称解密算法获取各加密子文件对应的私钥,并利用获取到的私钥分别对各加密子文件进行解密,其中,私钥与加密子文件加密时所使用的公钥相互配对,且私钥与其相互配对的公钥所组成的密钥对由RSA非对称加密算法预先生成。由于加密子文件中依次包括其对应的字节长度、校验位和加密内容,因此在利用私钥对加密子文件进行解密时,需首先读取出字节长度和校验位,然后在校验位之后获取到加密内容,再利用私钥对该加密内容进行解密,解密后得到的数据即为该加密子文件对应的子文件。本领域的技术人员应可了解,此处的私钥可以是统一的(相同的),也可以针对不同的子文件有不同的私钥,本发明并不以此为限。

在一个实施例中,获取到各子文件之后,继续执行步骤S304,可按照如下方式获得解密后的文件:根据各子文件在文件中的位置关系组合各子文件,获得解密后的文件。优选地,由于各加密子文件之间的排列次序与对应的各子文件在文件中的位置关系一致,因此获取到各子文件之后,可采用依次拼接各子文件的方式获取文件。

举例而言,加密文件包括:头文件+预定分段长度+第一个加密子文件的字节长度+第一个加密子文件的校验位+第一个加密子文件的加密内容+第二个加密子文件的字节长度+第二个加密子文件的校验位+第二个加密子文件的加密内容+第三个加密子文件的字节长度+第三个加密子文件的校验位+第三个加密子文件的加密内容。该加密文件是由RSA非对称加密算法预先生成的密钥对中的公钥进行加密的,且各加密子文件之间的排列次序与对应的各子文件在文件中的位置关系一致,则在获取文件时,首先读取加密文件中的头文件和预定分段长度,在预定分段长度之后即可依次读取到第一个加密子文件、第二个加密子文件和第三个加密子文件;其次,由于各加密子文件中还包括有各自对应的字节长度和校验位,因此需从各加密子文件中依次读取字节长度和校验位,在校验位之后获取到各加密子文件中的加密内容;然后,获取每个加密子文件对应的私钥,该私钥与加密时使用的公钥相互配对,使用私钥对每个加密子文件中的加密内容进行解密,获得各加密子文件对应的子文件;最后,将各子文件依次拼接生成文件。

由上述实施例可知,该技术方案在对加密文件解密时,能够根据加密文件中各加密子文件对应的位置信息分别获取各加密子文件,并分别获取各加密子文件中的加密内容,然后利用相应的解密算法对加密内容进行解密,从而获得解密后的子文件,进而根据各子文件生成文件,不仅提高了文件的保密性,确保数据无安全隐患,还能够确保文件中数据的完整性和正确性。

图4是根据本发明一个实施例的一种文件加密装置的示意性框图。如图4所示,该文件加密装置一般性地可包括:

第一判断模块410,适于判断待加密的文件的长度是否超过预定总长度;

第一确定模块420,与第一判断模块410相耦合,适于若第一判断模块判定待加密的文件的长度超过预定总长度,则以第一预设长度作为预定分段长度;

分段模块430,与第一确定模块420相耦合,适于按照预定分段长度对文件进行分段处理,获得至少两个子文件;

加密模块440,与分段模块430相耦合,适于利用预设加密算法分别对各子文件进行加密,获得至少两个加密子文件;

第一生成模块450,与加密模块440相耦合,适于根据至少两个加密子文件生成加密文件。

在一个实施例中,如图5所示,上述装置还包括:

第二判断模块460,与第一判断模块410相耦合,适于若第一判断模块判定文件的长度未超过预定总长度,则判断文件的长度是否超过第二预设长度;

第二确定模块470,与第二判断模块460和分段模块430相耦合,适于若第二判断模块判定文件的长度超过第二预设长度,则以第二预设长度作为预定分段长度。

在一个实施例中,第一预设长度和第二预设长度皆不超过预定总长度,且第二预设长度小于第一预设长度。

在一个实施例中,加密子文件中依次包括其对应的字节长度、校验位和加密内容。

在一个实施例中,第一生成模块450还适于依次组合以下内容:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的各加密子文件;其中,各加密子文件之间的排列次序与各子文件在文件中的位置关系一致;打包组合后的内容,获得加密文件。

在一个实施例中,预设加密算法为RSA非对称加密算法。

在一个实施例中,加密模块440还适于利用密钥对中的公钥分别对各子文件进行加密,密钥对是预先利用RSA非对称加密算法生成的。

采用本发明实施例提供的装置,能够在待加密的文件的长度超过预定总长度时,以第一预设长度作为预定分段长度对文件进行分段处理,并分别对分段后的各子文件进行加密,使得待加密的文件能够被加密为多个加密子文件,相较于现有的不依赖于文件长度、将文件作为一个整体进行一次性加密的方案而言,该技术方案中的加密算法能够有效防止黑客或恶意攻击者对加密文件的破解,即使破解了其中某个加密子文件,也无法获取到文件中的数据明文,因此大大提高了文件的保密性,确保数据无安全隐患。并且,该技术方案能够根据多个加密子文件生成加密文件,确保了数据的完整性。

图6是根据本发明一个实施例的一种文件解密装置的示意性框图。如图6所示,该文件解密装置一般性地可包括:

第一获取模块610,适于获取加密文件,并确定对加密文件加密的预设加密算法,加密文件中包括至少两个加密子文件;

第二获取模块620,与第一获取模块610相耦合,适于从加密文件中获取各加密子文件;

解密模块630,与第二获取模块620相耦合,适于利用预设加密算法对应的解密算法,分别对各加密子文件进行解密,获得至少两个子文件;

第二生成模块640,与解密模块630相耦合,适于根据至少两个子文件生成解密后的文件。

在一个实施例中,加密文件中依次包括:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的至少两个加密子文件,各加密子文件之间的排列次序与各子文件在文件中的位置关系一致,加密子文件中依次包括其对应的字节长度、校验位和加密内容。

在一个实施例中,第二获取模块620还适于根据第一字节长度、第二字节长度以及各加密子文件之间的排列次序,确定加密文件中各加密子文件的位置;根据各加密子文件的位置,从加密文件中获取各加密子文件。

在一个实施例中,第二生成模块640还适于按照各子文件在文件中的位置关系组合各子文件,获得解密后的文件。

在一个实施例中,预设加密算法为RSA非对称加密算法。

在一个实施例中,解密模块630还适于利用密钥对中的私钥分别对各子文件进行解密,密钥对是预先利用RSA非对称加密算法生成的。

采用本发明实施例提供的装置,在对文件解密时,能够首先从加密文件中获取各加密子文件,并分别对各加密子文件进行解密,然后根据解密后的各子文件生成文件,即,用户需对每个加密子文件都分别进行解密才能获得文件中的数据明文,因此,该技术方案能够有效防止黑客或恶意攻击者对加密文件的破解,即使破解了其中某个加密子文件,也无法获取到文件中的数据明文,因此大大提高了文件的保密性,确保数据无安全隐患。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件加密装置和文件解密装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

本发明实施例公开了A1.一种文件加密方法,包括:

判断待加密的文件的长度是否超过预定总长度;

若是,则以第一预设长度作为预定分段长度;

按照所述预定分段长度对所述文件进行分段处理,获得至少两个子文件;

利用预设加密算法分别对各子文件进行加密,获得至少两个加密子文件;

根据所述至少两个加密子文件生成加密文件。

A2.根据A1所述的方法,还包括:

若所述文件的长度未超过所述预定总长度,则判断所述文件的长度是否超过第二预设长度;

若是,则以第二预设长度作为所述预定分段长度。

A3.根据A1或A2所述的方法,其中,所述第一预设长度和所述第二预设长度皆不超过所述预定总长度,且所述第二预设长度小于所述第一预设长度。

A4.根据A1-A3中任一项所述的方法,其中,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

A5.根据A1-A4中任一项所述的方法,其中,根据所述至少两个加密子文件生成加密文件,包括:

依次组合以下内容:占用第一字节长度的头文件、占用第二字节长度的所述预定分段长度、依次排列的各加密子文件;其中,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致;

打包所述组合后的内容,获得所述加密文件。

A6.根据A1-A5中任一项所述的方法,其中,所述预设加密算法为RSA非对称加密算法。

A7.根据A6所述的方法,其中,利用预设加密算法分别对各子文件进行加密,包括:

利用密钥对中的公钥分别对所述各子文件进行加密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

本发明实施例还公开了B8.一种文件解密方法,包括:

获取加密文件,并确定对所述加密文件加密的预设加密算法,所述加密文件中包括至少两个加密子文件;

从所述加密文件中获取各加密子文件;

利用所述预设加密算法对应的解密算法,分别对所述各加密子文件进行解密,获得至少两个子文件;

根据所述至少两个子文件生成解密后的文件。

B9.根据B8所述的方法,其中,所述加密文件中依次包括:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的至少两个加密子文件,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

B10.根据B9所述的方法,其中,所述从所述加密文件中获取各加密子文件,包括:

根据所述第一字节长度、所述第二字节长度以及各加密子文件之间的排列次序,确定所述加密文件中各加密子文件的位置;

根据所述各加密子文件的位置,从所述加密文件中获取所述各加密子文件。

B11.根据B8-B10中任一项所述的方法,其中,根据所述至少两个子文件生成解密后的文件,包括:

按照各子文件在所述文件中的位置关系组合所述各子文件,获得所述解密后的文件。

B12.根据B8-B11中任一项所述的方法,其中,所述预设加密算法为RSA非对称加密算法。

B13.根据B12所述的方法,其中,分别对所述各加密子文件进行解密,包括:

利用密钥对中的私钥分别对所述各加密子文件进行解密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

本发明实施例还公开了C14.一种文件加密装置,包括:

第一判断模块,适于判断待加密的文件的长度是否超过预定总长度;

第一确定模块,适于若所述第一判断模块判定所述待加密的文件的长度超过所述预定总长度,则以第一预设长度作为预定分段长度;

分段模块,适于按照所述预定分段长度对所述文件进行分段处理,获得至少两个子文件;

加密模块,适于利用预设加密算法分别对各子文件进行加密,获得至少两个加密子文件;

第一生成模块,适于根据所述至少两个加密子文件生成加密文件。

C15.根据C14所述的装置,还包括:

第二判断模块,适于若所述第一判断模块判定所述文件的长度未超过所述预定总长度,则判断所述文件的长度是否超过第二预设长度;

第二确定模块,适于若所述第二判断模块判定所述文件的长度超过所述第二预设长度,则以第二预设长度作为所述预定分段长度。

C16.根据C14或C15所述的装置,其中,所述第一预设长度和所述第二预设长度皆不超过所述预定总长度,且所述第二预设长度小于所述第一预设长度。

C17.根据C14-C16中任一项所述的装置,其中,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

C18.根据C14-C17中任一项所述的装置,其中,所述第一生成模块,适于依次组合以下内容:占用第一字节长度的头文件、占用第二字节长度的所述预定分段长度、依次排列的各加密子文件;其中,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致;打包所述组合后的内容,获得所述加密文件。

C19.根据C14-C18中任一项所述的装置,其中,所述预设加密算法为RSA非对称加密算法。

C20.根据C19所述的装置,其中,所述加密模块,适于利用密钥对中的公钥分别对所述各子文件进行加密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

本发明实施例还公开了D21.一种文件解密装置,包括:

第一获取模块,适于获取加密文件,并确定对所述加密文件加密的预设加密算法,所述加密文件中包括至少两个加密子文件;

第二获取模块,适于从所述加密文件中获取各加密子文件;

解密模块,适于利用所述预设加密算法对应的解密算法,分别对所述各加密子文件进行解密,获得至少两个子文件;

第二生成模块,适于根据所述至少两个子文件生成解密后的文件。

D22.根据D21所述的装置,其中,所述加密文件中依次包括:占用第一字节长度的头文件、占用第二字节长度的预定分段长度、依次排列的至少两个加密子文件,所述各加密子文件之间的排列次序与各子文件在所述文件中的位置关系一致,所述加密子文件中依次包括其对应的字节长度、校验位和加密内容。

D23.根据D22所述的装置,其中,所述第二获取模块,适于根据所述第一字节长度、所述第二字节长度以及各加密子文件之间的排列次序,确定所述加密文件中各加密子文件的位置;根据所述各加密子文件的位置,从所述加密文件中获取各加密子文件。

D24.根据D21-D23中任一项所述的装置,其中,所述第二生成模块,适于按照各子文件在所述文件中的位置关系组合所述各子文件,获得所述解密后的文件。

D25.根据D21-D24中任一项所述的装置,其中,所述预设加密算法为RSA非对称加密算法。

D26.根据D25所述的装置,其中,所述解密模块,还适于利用密钥对中的私钥分别对所述各子文件进行解密,所述密钥对是预先利用所述RSA非对称加密算法生成的。

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