1.本发明涉及文件加密技术领域,尤其涉及一种文件加密方法及系统。
背景技术:
2.随着网络技术的蓬勃发展,很多公司都会上线信息化系统,这导致电脑文件的使用率飞速提升,同时网络安全也成为现在关注的一个重要问题。数据通过网络传送,如果其中的机密文件被泄露,那么将会带来不可估量的损失,在这样的大背景下文件加密的方法应运而生。
3.因此,如何设计一种简单可靠的、且方便用户使用和管理的文件数据加密方法是目前所亟需的。
技术实现要素:
4.为了提供一种简单可靠的文件加密方法,在本发明的一个方面,提出了一种文件加密方法,所述方法包括:将待加密文件划分为多个数据块;为每个所述数据块分配标记,并基于所述标记确定每个数据块的位置坐标;根据预设规则及对应的位置坐标将每个所述数据块规则化为第一字符串;获取随机秘钥,通过所述随机秘钥再次加密所述第一字符串以获得第二字符串;生成加密文件,将多个所述第二字符串随机排序并保存到所述加密文件的文件体,将用于文件数据还原的特征字段保存到所述加密文件的文件数据头。
5.在一个或多个实施例中,每个所述数据块划分到所述待加密文件的至少一行中的部分数据,且所述数据块的总数小于所述待加密文件的数据的总行数。
6.在一个或多个实施例中,为每个所述数据块分配标记,并基于所述标记确定每个数据块的位置坐标,包括:随机为每个所述数据块分配不重复的标记;并且分别以每个所述数据块为中心,确定其相邻的数据块的标识,并按照预设次序组成中心数据块的位置坐标;其中,响应于所述中心数据块的某一相邻位置上没有数据块,以第一默认标记代替。
7.在一个或多个实施例中,所述标记包括大写字母、小写字母、数字以及特殊符号;所述第一默认标记为多个所述标记中的一个,响应于多个所述标记中的一个被确定为第一默认标记,不再以所述第一默认标记作为随机为所述多个数据块分配的标记。
8.在一个或多个实施例中,所述预设规则包括:判断每个所述数据块中划分到的属于所述待加密文件的不同行的数据的长度是否相同;响应于长度相同,则对所述数据块中的多个数据进行规则转换,规则转换包括将所述数据块转换为对应的位置坐标加所述数据块中包含的数据个数加数据长度加循环数据,所述循环数据为所述数据在所述数据块中的循环行号加所述数据;响应于长度不同,则对所述数据块中的多个数据进行非规则转换,非规则转换包括将所述数据块转换为对应的位置坐标加所述数据块中包含的数据个数加第二默认值加循环数据,所述循环数据为所述数据在所述数据块中的循环行号加所述数据的长度加所述数据。
9.在一个或多个实施例中,所述预设规则还包括:响应于所述数据块仅划分到属于
所述待加密文件的某一行中的数据,默认对所述数据进行规则转换。
10.在一个或多个实施例中,所述获取随机秘钥,通过所述随机秘钥再次加密所述第一字符串以获得第二字符串,包括:获取第一随机秘钥及第一随机符,并与所述第一字符串中的数据块绑定;利用所述第一随机符替换所述第一字符串中的数据块的位置坐标;利用所述第一字符串的长度除以所述第一随机秘钥的长度的确定所述数据块的分割位;将所述第一随机秘钥的每一位依次插入对应的分割位中,获得第二字符串。
11.在一个或多个实施例中,所述方法还包括:根据所述第二字符串生成新的数据块;将用于数据还原的特征字段保存在所述新的数据块的数据头。
12.在一个或多个实施例中,所述将多个所述第二字符串随机排序,包括:为每个所述新的数据块分配第二随机符;根据所述第二随机符的大小对多个所述第二字符串对应的多个新的数据块重新排序。
13.在本发明的第二方面,提出了一种文件加密系统,包括:数据划分模块,配置用于将待加密文件划分为多个数据块;数据标记模块,配置用于为每个所述数据块分配标记,并基于所述标记确定每个数据块的位置坐标;第一加密模块,配置用于根据预设规则及对应的位置坐标将每个所述数据块规则化为无序的第一字符串;第二加密模块,配置用于获取随机秘钥,通过所述随机秘钥再次加密所述第一字符串以获得第二字符串;加密文件生成模块,配置用于生成加密文件,将多个所述第二字符串随机排序并保存到所述加密文件的文件体,将用于文件数据还原的特征字段保存到所述加密文件的文件数据头。
14.本发明的有益效果包括:本发明方法提出的文件加密方法简单可靠,便于用户利用上述方法实现文件加密且易于维护管理。
附图说明
15.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
16.图1为本发明的一种文件加密方法的工作流程图;
17.图2为本发明的一种文件加密系统的结构示意图。
具体实施方式
18.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
19.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
20.图1所示为本发明的一种文件加密方法的工作流程图。如图1所示,本发明的文件加密方法的工作流程包括:步骤s1、将待加密文件划分为多个数据块;步骤s2、为每个数据块分配标记,并基于标记确定每个数据块的位置坐标;步骤s3、根据预设规则及对应的位置坐标将每个所述数据块规则化为第一字符串;步骤s4、获取随机秘钥,通过随机秘钥再次加
密第一字符串以获得第二字符串;以及步骤s5、生成加密文件,将多个第二字符串随机排序并保存到加密文件的文件体,将第二字符串对应的特征字段依序保存到加密文件的文件数据头。
21.为了能够更加清楚的阐述本发明的技术方案,以下将对本发明的每一步骤进行更加详细的说明。
22.对于步骤s1,本发明利用步骤s1,目的在于将一个完整的数据文件分解为数据不连续的数据块,使得即使部分数据块泄露后也无法由该数据块还原出正确的信息,或者至少无法还原出完整信息。其中,本发明的待加密文件是经过二进制转换后的数据文件。
23.在一个可选的实施例中,为了达到上述将一个完整的数据文件分解为数据不连续的数据块的技术效果,在划分数据块时应尽量将数据文件中的同一行数据划分在多个数块中,每个数据块中将包含来自数据文件中多行的部分数据,其中,每个数据块划分到待加密文件的至少一行中的部分数据,且数据块的总数小于待加密文件的数据的总行数。
24.在一个具体的实施中,可以通过对待加密文件进行分析,根据待加密文件中的总数据行数,确定行分组以确定每个数据块中所包含的数据的行数,再确定列分组以确定需要将待加密文件的一行数据划分为几段。经划分后的待加密文件将形成类似下述表格的形式:
[0025][0026][0027]
由上述可知,列分组数越多每个数据块中的数据完整性越差,但数据块的数量不宜过多,数据块过多将导致数据块丢失的风险大大增加,因此在一个优选实施例中,数据块的数量可以为待加密文件的总行数的一半。
[0028]
对于步骤s2,本发明将为每个数据分配标记,目的在于利用标记生成该数据块在上述实施例的表格中的位置坐标,以为后续步骤中打乱数据块的排列后恢复待加密文件时使用。
[0029]
在一个可选的实施例中,为了降低上述位置坐标被识别以及被推导的可能,本发明将随机为每个数据块分配不重复的标记;并且分别以每个数据块为中心,确定其相邻的数据块的标识,并按照预设次序(如上下左右)组成中心数据块的位置坐标;其中,响应于中心数据块的某一相邻位置上没有数据块,以第一默认标记代替。其中,第一默认标记为多个标记中的一个,响应于多个标记中的一个被确定为第一默认标记后,不再以该第一默认标记作为随机为多个数据块分配的标记。即在本发明中会存在一个标记记录表,该记录表中将记录特殊标记的特殊作用,如本实施例中第一默认标记以及后续实施例中的第二默认值等等;其中,一旦某个标记被用作特殊用途时,其将不再被用于形成位置坐标的组合。
[0030]
在另一个可选的实施例中,为了进一步降低上述位置坐标被识别以及被推导的可能,分配给每个数据块的标记包括但不限于大写字母、小写字母、数字以及特殊符号。在一个优选的实施例中,分别为相邻的数据随机分配不同种类的标记,以最大化其被推断以及被识别的难度。
[0031]
在下述实施中,为了能够更加清楚的阐述其它加密步骤,将仅以数字标记为例进行说明。
[0032]
在一个具体的实施例中,每一个数据块按照提取与其相邻的上下左右的数据块的标记,顺序形成中心数据块的位置坐标,并对在某一方向上没有相邻数据块的情形以第一默认标记“0”代替。例如,数据块1的位置坐标是0402;又例如,数据块5的位置坐标是2046。
[0033]
对于步骤s3、本发明利用步骤s3实现对数据块的第一次加密,本次加密的主要目的在于将位置坐标与对应的数据块绑定,从而为后续数据块排列打乱后的位置恢复做准备。当然,步骤s3本身也能实现数据加密的技术效果。
[0034]
在一个可选的实施例中,预设规则包括:
[0035]
步骤s31、判断每个数据块中划分到的属于待加密文件的不同行的数据的长度是否相同;即当数据块中包含多条数据时,判断多条数据的长度是否相同;
[0036]
步骤s32,若长度相同,则对数据块中的多个数据进行规则转换,规则转换包括将数据块转换为对应的位置坐标加数据块中包含的数据个数加数据长度加循环数据,其中,循环数据为数据在数据块中的循环行号加数据;
[0037]
例如,设数据块1中共包含三条长度相同的数据,具体组成如下表1所示:
[0038]
表1数据块1的组成
[0039]
行号规则化数据1qwert2asdfg3zxcvb
[0040]
其中,由于数据块1中的三条数据长度相同,因此将采用规则转换对数据块1进行转换,转换结果为:0402351qwert2asdfg3zxcvb,其中0402为数据块1的位置坐标,3表示数据块有三行数据,5表示规则化数据长度为5,1是循环行号,qwert即为被加密的数据,依次类推形成如上字符串。
[0041]
步骤s33,若长度不同,则对数据块中的多个数据进行非规则转换,非规则转换包括将数据块转换为对应的位置坐标加数据块中包含的数据个数加第二默认值加循环数据,循环数据为数据在数据块中的循环行号加数据的长度加数据。可以理解为,在非规则转换中,由于数据的长度不一致,因此需要将每条数据的长度由循环数据分别记录;
[0042]
例如,设数据块5中共包含三条长度相同的数据,具体组成如下表2所示:
[0043]
表2数据块5的组成
[0044]
行号不规则话数据1qwertfd2asdsaasfgd3asfs
[0045]
对数据块5的非规则转换结果为:20463017qwertfd210asdsaasfgd34asfs。其中,2046是数据块5的位置坐标,3表示数据块5中共有三行数据,第二默认值“0”表示当前数据块5为非结构化数据,“1”是循环行号,“7”是该数据的长度,“qwertfd”即为被加密的数据,依次类推形成如上字符串。
[0046]
在另一个可选的实施中,响应于数据块仅划分到属于待加密文件的某一行中的数据,默认对数据块进行规则转换。
[0047]
对于步骤s4,本发明利用步骤s4的主要目的在于,对数据块的真实位置坐标进行
加密。
[0048]
在一个可选的实施例中,获取随机秘钥,通过随机秘钥再次加密第一字符串以获得第二字符串,包括:步骤s41、获取随机秘钥及随机符,并与第一字符串中的数据块绑定;步骤s42、利用随机符替换第一字符串中的数据块的位置坐标;步骤s43、利用第一字符串的长度除以随机秘钥的长度确定数据块的分割位;步骤s44、将随机秘钥的每一位依次插入对应的分割位中,获得第二字符串。在后续的数据还原中,只需去掉第二字符串中的随机秘钥和随机符即可将第二字符串还原为第一字符串。
[0049]
其中,对于步骤s43,在一个可选的实施例中,可以利用第一字符串的长度除以随机秘钥的长度的余数确定数据块的分割位,当余数小于3时,默认以每3位确定一个分割位;例如,设对于上述的第一字符串0402351qwert2asdfg3zxcvb,设获取的随机秘钥为tsds,获取的随机符为9879;利用9879替换位置坐标0402,获得9879351qwert2asdfg3zxcvb,共计24位,利用24除以4余数为0,0小于等于3,因此以每三位确定一个分割位并插入秘钥位的结果为:t_987_s_935_d_1qw_s_ert_t_2as_s_dfg_d_3zx_s_cvb_t。需说明的是,实际数据中无下划线,本文为更好理解而增加了下划线以便于展示。在另一个可选的实施例中,可以在第二字符串的最前端加设字符串长度,生成的新的字符串为:24t987s935d1qwsertt2assdfgd3zxscvbt。
[0050]
在一个可选的实施例中,在生成第二字符串后,需要将第二字符串打包成新的数据块,并将用于数据还原的特征字段保存在新的数据块的数据头。
[0051]
对于步骤s5、利用步骤s5将数据块的排序打乱并生成新的加密文件。具体步骤包括:步骤s51、为每个新的数据块分配第二随机符;以及步骤s52根据第二随机符的大小对多个第二字符串对应的多个新的数据块重新排序。
[0052]
在一个可选的实施例中,用于文件数据还原的特征字段的组成包括:秘钥 方向位1 方位1对应的随机符 方向位2 方向位2对应的随机符 方向位3 方向位3对应的随机符
……
方位n 方向位n对应的随机符 秘钥 数据分割标识 秘钥。其中,通过特征字段“向位1 方位1对应的随机符 方向位2 方向位2对应的随机符 方向位3 方向位3对应的随机符
……
方位n 方向位n对应的随机符”能够还原多个新的数据块被打乱前的排序;而数据分割标识所对应的数据记录了待加密文件的划分方式,用于在将文件数据还原后的校验工作,而特征字段中的秘钥主要起到分隔作用。
[0053]
如上述各实施例,本发明方法提出的文件加密方法简单可靠,便于用户利用上述方法实现文件加密且易于维护管理。
[0054]
在本发明的第二方面,提出了一种文件加密装置。图2为本发明的一种文件机密系统的结构示意图。如图2所示本发明的文件加密系统包括:数据划分模块100,配置用于将待加密文件划分为多个数据块;数据标记模块200,配置用于为每个数据块分配标记,并基于标记确定每个数据块的位置坐标;第一加密模块300,配置用于根据预设规则及对应的位置坐标将每个数据块规则化为无序的第一字符串;第二加密模块400,配置用于获取随机秘钥,通过随机秘钥再次加密第一字符串以获得第二字符串;以及加密文件生成模块500,配置用于生成加密文件,将多个第二字符串随机排序并保存到加密文件的文件体,将用于文件数据还原的特征字段保存到加密文件的文件数据头。
[0055]
本发明方法提出的文件加密系统简单可靠,便于用户利用上述系统实现文件加密
且易于维护管理。
[0056]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0057]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0058]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0059]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
技术特征:
1.一种文件加密方法,其特征在于,所述方法包括:将待加密文件划分为多个数据块;为每个所述数据块分配标记,并基于所述标记确定每个数据块的位置坐标;根据预设规则及对应的位置坐标将每个所述数据块规则化为第一字符串;获取随机秘钥,通过所述随机秘钥再次加密所述第一字符串以获得第二字符串;生成加密文件,将多个所述第二字符串随机排序并保存到所述加密文件的文件体,将用于文件数据还原的特征字段保存到所述加密文件的文件数据头。2.如权利要求1所述的文件加密方法,其特征在于,每个所述数据块划分到所述待加密文件的至少一行中的部分数据,且所述数据块的总数小于所述待加密文件的数据的总行数。3.如权利要求1所述的文件加密方法,其特征在于,为每个所述数据块分配标记,并基于所述标记确定每个数据块的位置坐标,包括:随机为每个所述数据块分配不重复的标记;并且分别以每个所述数据块为中心,确定其相邻的数据块的标识,并按照预设次序组成中心数据块的位置坐标;其中,响应于所述中心数据块的某一相邻位置上没有数据块,以第一默认标记代替。4.如权利要求3所述的文件加密方法,其特征在于,所述标记包括大写字母、小写字母、数字以及特殊符号;所述第一默认标记为多个所述标记中的一个,响应于多个所述标记中的一个被确定为第一默认标记,不再以所述第一默认标记作为随机为所述多个数据块分配的标记。5.如权利要求2所述的文件加密方法,其特征在于,所述预设规则包括:判断每个所述数据块中划分到的属于所述待加密文件的不同行的数据的长度是否相同;响应于长度相同,则对所述数据块中的多个数据进行规则转换,规则转换包括将所述数据块转换为对应的位置坐标加所述数据块中包含的数据个数加数据长度加循环数据,所述循环数据为所述数据在所述数据块中的循环行号加所述数据;响应于长度不同,则对所述数据块中的多个数据进行非规则转换,非规则转换包括将所述数据块转换为对应的位置坐标加所述数据块中包含的数据个数加第二默认值加循环数据,所述循环数据为所述数据在所述数据块中的循环行号加所述数据的长度加所述数据。6.如权利要求5所述的文件加密方法,其特征在于,所述预设规则还包括:响应于所述数据块仅划分到属于所述待加密文件的某一行中的数据,默认对所述数据进行规则转换。7.如权利要求1所述的文件加密方法,其特征在于,所述获取随机秘钥,通过所述随机秘钥再次加密所述第一字符串以获得第二字符串,包括:获取第一随机秘钥及第一随机符,并与所述第一字符串中的数据块绑定;利用所述第一随机符替换所述第一字符串中的数据块的位置坐标;利用所述第一字符串的长度除以所述第一随机秘钥的长度的确定所述数据块的分割位;
将所述第一随机秘钥的每一位依次插入对应的分割位中,获得第二字符串。8.如权利要求7所述的文件加密方法,其特征在于,所述方法还包括:根据所述第二字符串生成新的数据块;将用于数据还原的特征字段保存在所述新的数据块的数据头。9.如权利要求8所述的文件加密方法,其特征在于,所述将多个所述第二字符串随机排序,包括:为每个所述新的数据块分配第二随机符;根据所述第二随机符的大小对多个所述第二字符串对应的多个新的数据块重新排序。10.一种文件加密系统,其特征碍于,包括:数据划分模块,配置用于将待加密文件划分为多个数据块;数据标记模块,配置用于为每个所述数据块分配标记,并基于所述标记确定每个数据块的位置坐标;第一加密模块,配置用于根据预设规则及对应的位置坐标将每个所述数据块规则化为无序的第一字符串;第二加密模块,配置用于获取随机秘钥,通过所述随机秘钥再次加密所述第一字符串以获得第二字符串;加密文件生成模块,配置用于生成加密文件,将多个所述第二字符串随机排序并保存到所述加密文件的文件体,将用于文件数据还原的特征字段保存到所述加密文件的文件数据头。
技术总结
本发明提出了一种文件加密方法及系统,其中,方法包括:将待加密文件划分为多个数据块;为每个数据块分配标记,并基于标记确定每个数据块的位置坐标;根据预设规则及对应的位置坐标将每个数据块规则化为第一字符串;获取随机秘钥,通过随机秘钥再次加密第一字符串以获得第二字符串;生成加密文件,将多个第二字符串随机排序并保存到加密文件的文件体,将用于文件数据还原的特征字段保存到加密文件的文件数据头。本发明的有益效果包括:本发明方法提出的文件加密方法简单可靠,便于用户利用上述方法实现文件加密且易于维护管理。方法实现文件加密且易于维护管理。方法实现文件加密且易于维护管理。
技术研发人员:王旭
受保护的技术使用者:山东浪潮通软信息科技有限公司
技术研发日:2022.02.18
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-8414.html