文件加密方法技术

技术编号:24575690 阅读:14 留言:0更新日期:2020-06-21 00:20
本发明专利技术公开了一种文件加密方法,包括以下步骤:读取待加密的文件,确定待加密的文件的大小;以所述大小为参数生成加密秘钥;将待加密的文件分为多个文件分块;读取一文件分块,使用所述加密秘钥对文件分块进行加密,生成加密分块,直至将所有文件分块加密完毕;将加密分块合并,生成加密文件,并将所述加密秘钥发送给文件加密方法调用者。依据本发明专利技术的文件加密方法具有较强的安全性。

File encryption method

【技术实现步骤摘要】
文件加密方法
本专利技术涉及一种文件加密方法,适用于非结构化文件的加密。
技术介绍
非结构化数据是指字段长度可变,并且每个字段的记录又可以由可重复或不可重复的字段构成的数据,非结构化数据所形成的文件即非结构化文件,常见的非结构化数据主要有文本、图像、声音、影视、超媒体等信息,与之对应的结构化数据主要有数字、符号都信息。已知的文件加密方法也主要用于非结构化数据的加密,文件加密种类繁多,但相对应的黑客破解技术也在不断更新,各种木马病毒泛滥,现有的文件加密技术基本都被黑客所掌握。当前的文件加密方式主要是基于文件特征码的加密方式,黑客通过对加密后的文件特征码识别的方式很容易识别文件加密方式并进而找到对应的破解方法。中国专利文献CN105956492A公开了一种文件存储加密方法及装置,其所公开文件存储加密方法采用了相对单一的加密方式,该加密方式具有比较强的规律性,即有规律可循,具体是针对二进制数据按照8位进行分割,然后按照斐波那契数列规律进行同或位计算。该种加密方法所依赖的加密算法是早已公开的加密算法,且加密解密过程没有使用加密密钥,对算法进行逆向分析后很容易进行解密。该加密算法解密过程类似CBC分组链接模式,解密过程易引发错误传播无界,也不利于并行计算。
技术实现思路
本专利技术的目的在于提供一种文件加密方法,该加密方法通过加密密钥及加密过程拆分数据逻辑的随机性,增强加密文件的安全性。在本专利技术的的实施例中,提供一种文件加密方法,包括以下步骤:读取待加密的文件,确定待加密的文件的大小;以所述大小为参数生成加密秘钥;将待加密的文件分为多个文件分块;读取一文件分块,使用所述加密秘钥对文件分块进行加密,生成加密分块,直至将所有文件分块加密完毕;将加密分块合并,生成加密文件,并将所述加密秘钥发送给文件加密方法调用者。可选地,秘钥长度与文件分块的数量相等,秘钥的位与文件分块一一对应,以秘钥位对所对应文件分块加密。可选地,秘钥为底层随机数函数随机生成,秘钥的长度为5~10。可选地,确定一个缓冲区,以文件大小与缓冲区大小的商取整作为秘钥长度;在秘钥长度计算时,文件大小以位计数,缓冲区大小以字节计数;在进行文件分块加密时,每次读取一个文件分块到缓冲区进行加密。可选地,文件分块不大于缓冲区的大小。可选地,加密运算为文件分块中数据与相应秘钥位间的位运算。可选地,所述位运算为文件分块中的数据与相应秘钥位间的模28加运算。可选地,若无需对全部文件分块进行加密,则对第一个文件分块进行加密。可选地,加密运算采用多线程并行处理;线程数与加密秘钥的位数相同。依据本专利技术实施例的文件加密方法,在文件加密时采用加密秘钥,提高文件加密的安全性,同时该将加密秘钥与文件大小相关联,即加密秘钥与文件大小相关,每一文件与一加密秘钥相对应,而非使用固定的秘钥进行加密,进一步提高了加密文件的安全性。进而对待加密的文件分割成若干文件分块,使用所述加密秘钥分别进行加密,分块本身也具有随机性,进一步提高了加密的安全性。附图说明图1为一实施例中文件加密方法流程图。图2为一实施例中一具体的文件加密流程图。具体实施方式对于非结构化文件,其固有属性之一是自身文件结构往往不单一,适于本专利技术以随机为主要加密调整的加密方法。在本专利技术的实施例中,通过计算得到的文件基础信息及随机密钥算法生成针对待加密的文件的随机密钥。进而根据随机密钥长度对文件数据流进行拆分,拆分后的数据流再使用随机密钥逐字节进行模28加法运算,拆分后的文件分块数量与密钥位数相等,每一文件分块使用一位密钥进行加密。通过随机加密密钥及加密过程拆分数据逻辑的随机性,增强加密文件的安全性。具体实现方案如下:通过文件通道读取待加密的文件,获取待加密的文件大小,文件大小以字节为单位进行计算。文件通道是Java中提供的FileChannel这个文件操作类,它是一个快速读、写、映射操作文件的通道。文件通道具有的优点:1).在文件的绝对位置的字节读写操作在某种程度上只会影响通道的当前位置,不会影响其他位置。2).文件的区域可能会被直接映射到内存中,对于大文件来说,这比通常的读写方法更有效。3).为了保证数据在系统崩溃之后不丢失数据,文件的修改模式会被强制到底层存储设备。4).字节能从一个文件被转换为一些其他的通道,反之亦然,这种操作在某种程度上会被许多操作系统或者文件系统优化成一个非常快速的直接传输。5).操作过程中文件的区域会被锁住来防止其它程序的访问。在确定待加密的文件大小后,按照指定的随机密钥生成算法,以所述文件大小为参数,来生成随机加密密钥。生成的密钥长度控制在5~10位之间,此时生成的密钥长度同时作为后续多线程加密操作的线程数。在随机秘钥生成算法中优选底层随机数函数生成,底层随机数函数是指机器级的随机数函数。对于文件的加密运算,可在指定的缓冲区进行处理。指定最大缓冲区大小,根据最大缓冲区大小对文件进行分块,分块大小最大为最大缓冲区大小。若文件大小小于最大缓冲区大小,则定义文件大小为最大缓冲区大小。在确定文件分块大小时,可以预先确定随机秘钥的长度,根据随机秘钥的的长度,以及文件分块的数量与随机秘钥位数相同的设定,确定文件分块的大小,进而根据文件分块的大小确定缓冲区的大小。在一些实施例中,文件缓冲区的大小可以小于文件分块大小,在读取当前文件分块的数据时,采用例如顺序读的方式,直至对文件分块内的数据全部加密完毕。此外,可通过参数配置以用于设置对待加密文件进行全局加密还是局部加密,如果不是对整个文件进行加密,则只读取第一个文件分块。对于具体的加密操作,在一些实施例中可以进行单线程操作,而在优选的实施例中,可进行并行处理,采用多线程完成并行处理,以提高整体的处理效率。具体地,根据上述密钥长度,启动多个加密线程,加密线程数量等于密钥长度,每个加密线程与秘钥的位一一对应,即每个加密线程持有一个对应的单字节密钥k。加密线程按顺序依次对上述文件分块进行单字节读取,并对读取到的数据字节b使用单字节密钥k进行模28加运算,加密后字节数据保存回原文件分块位置。该加密操作循环执行,直至该文件分块内所有字节都完成加密运算。基于上段的加密方式,依次对其余文件分块进行加密,直至全部文件分块加密完毕,或者在一些实施例中仅对第一个文件分块进行加密。所述模28加运算的公式为:(b+k)%28,其中b为单字节数据,k为单字节密钥,%28为对28取模运算。上述加密逻辑完成后,关闭快速文件通道,输出加密后的文件流到指定的文件路径。并把随机密钥返回给加密逻辑调用者。在本专利技术实施例上述文件加密过程中,将待加密的文件以分块的形式读取到缓冲区,然后对缓冲区中的数据使用随机密钥逐字节进行模28加运算。运算结果保存回原文件分块相同位置,形本文档来自技高网...

【技术保护点】
1.一种文件加密方法,其特征在于,包括以下步骤:/n读取待加密的文件,确定待加密的文件的大小;/n以所述大小为参数生成加密秘钥;/n将待加密的文件分为多个文件分块;/n读取一文件分块,使用所述加密秘钥对文件分块进行加密,生成加密分块,直至将所有文件分块加密完毕;/n将加密分块合并,生成加密文件,并将所述加密秘钥发送给文件加密方法调用者。/n

【技术特征摘要】
1.一种文件加密方法,其特征在于,包括以下步骤:
读取待加密的文件,确定待加密的文件的大小;
以所述大小为参数生成加密秘钥;
将待加密的文件分为多个文件分块;
读取一文件分块,使用所述加密秘钥对文件分块进行加密,生成加密分块,直至将所有文件分块加密完毕;
将加密分块合并,生成加密文件,并将所述加密秘钥发送给文件加密方法调用者。


2.根据权利要求1所述的文件加密方法,其特征在于,秘钥长度与文件分块的数量相等,秘钥的位与文件分块一一对应,以秘钥位对所对应文件分块加密。


3.根据权利要求2所述的文件加密方法,其特征在于,秘钥为底层随机数函数随机生成,秘钥的长度为5~10。


4.根据权利要求3所述的文件加密方法,其特征在于,确定一个缓冲区,以文件大小与缓冲区大小的商取整作为秘...

【专利技术属性】
技术研发人员:谢玉鑫王宾宾刘林杜伟
申请(专利权)人:金现代信息产业股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1