一种文件流字节组数据加密和网络传输方法与流程

文档序号:21360932发布日期:2020-07-04 04:34阅读:637来源:国知局
一种文件流字节组数据加密和网络传输方法与流程
本发明涉及文件传输领域,具体提供了一种文件流字节组数据加密和网络传输方法。
背景技术
:随着网络生态环境不断扩展,网络传输漏洞开始被人利用,开始监听网络导致重要信息泄露,由此对个人和企业造成重大损失的事件频频发生。因此,网络传输安全越来越受到重视,网络文件传输安全也越来越多的受到关注。有许多的专家学者、工程人士对传输文件加密进行了深入的研究,有的实现了个人文件传输的加密,有的提高了文档传输的安全性,还有的实现了在线对文档进行编辑来增强文件的安全性。但是,总体来说,文件的安全性还需要进一步的提高。技术实现要素:本发明是针对上述现有技术的不足,提供了一种实用性强的文件流字节组数据加密和网络传输方法。本发明解决其技术问题所采用的技术方案是:一种文件流字节组数据加密和网络传输方法,以文件流的方式读取将要加密的文件,得到文件的文件流字节数组a;对数组a和logistic映射迭代值进行一轮的异或处理,得到新的文件流字节数组b;对数组b进行置乱处理,使用logistic迭代序列对序列进行排序,对数组b按logistic序列进行替换,得到新的字节数组c;对数组c进行内部异或,得到新的字节数组d,对数组d进行置乱处理,使用logistic迭代序列进行排序,对数组d按logistic序列进行替换,得到新的字节数组e,对数组e重复n次所述a-e的处理,对最终得到的字节数组f进行base64编码得到将要传输的字符串。进一步的,logistic映射初始值的迭代次数由使用者给出,logistic序列置换为全局替换,数组间的异或为两个数组间对应位置间的异或,数组内部异或规则为当前位与后两位同时异或,最后一位与前两位异或,倒数第二位与相邻两位异或。进一步的,先由原字节流数组与logistic序列按同位异或,将新的到的数组进行logistic序列进行替换,将新得到的数组按后两位同时异或处理,再对数组进行全局替换,按照同样的加密方式进行n次循环加密。作为优选,循环加密的次数由要加密文件的大小所决定。进一步的,以文件流的方式读取将要加密的文件,得到文件的文件流字节数组a,数组a中每一位的值为-128~127的整数;将数组a和logistic映射迭代转换值进行一轮的异或处理,对给定的3.6<a0<4和迭代初始值0<x1<1,利用logistic迭代序列xn+1=α0*xn(1-xn),将得到的logistic迭代序列数组的值映射为取值范围为-128~0的整数的数组,即:xn=[128*(xn-1)]([]取整)将新得到的整数数组(x)和原来的文件流字节数组a,按位异或即:可得到字节组b。进一步的,对数组b进行置乱处理,给定的3.6<α1<4和迭代初始值0<x12<1,利用logistic迭代序列xn+1=α1*xn(1-xn),生成新的数组,对该数组进行排序,保留排序后对应数值在原来数值的索引值,得到索引数组temp,将数组b按照索引数组temp进行置换得到数组c。进一步的,对数组c进行内部的自异或处理,让数组当前位与之相邻的后两位同时进行异或操作,得到数组d,当n≤len-2:当n=len-1:当n=len:进一步的,对数组d按照logistic产生的索引数组进行d数组内部元素的替换,得到数组e,根据文件大小,重复n次a-e操作,得到数组f,对得到的数组f进行base64编码得到将要传输的字符串。作为优选,当文件大于1mb时,n=1;当加密文件小于1mb时n=10。本发明的一种文件流字节组数据加密和网络传输方法和现有技术相比,具有以下突出的有益效果:本方案主要针对网络文件传输安全性问题,对文件从字节流的层面上进行加密,让转换成的新编码字节具有更高的信息熵,更低的字节关联度,用以抵抗统计攻击和铭文攻击,为网络传输安全提供保障。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图1是未处理得到传输字串字符统计图;附图2是本发明处理后得到的传输字串字符统计;附图3是未处理得到的源文件字节码统计图;附图4是本发明处理后字节码统计图。具体实施方式为了使本
技术领域
的人员更好的理解本发明的方案,下面结合具体的实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例都属于本发明保护的范围。下面给出一个最佳实施例:如图1、2、3、4所示,本实施例中的文件流字节组数据加密和网络传输方法,以文件流的方式读取将要加密的文件,得到文件的文件流字节数组a;对数组a和logistic映射迭代值进行一轮的异或处理,得到新的文件流字节数组b;对数组b进行置乱处理,使用logistic迭代序列对序列进行排序,对数组b按logistic序列进行替换,得到新的字节数组c;对数组c进行内部异或,得到新的字节数组d,对数组d进行置乱处理,使用logistic迭代序列进行排序,对数组d按logistic序列进行替换,得到新的字节数组e,对数组e重复n次所述a-e的处理,对最终得到的字节数组f进行base64编码得到将要传输的字符串。其中,logistic映射初始值的迭代次数由使用者给出,logistic序列置换为全局替换,数组间的异或为两个数组间对应位置间的异或,数组内部异或规则为当前位与后两位同时异或,最后一位与前两位异或,倒数第二位与相邻两位异或。先由原字节流数组与logistic序列按同位异或,将新的到的数组进行logistic序列进行替换,将新得到的数组按后两位同时异或处理,再对数组进行全局替换,按照同样的加密方式进行n次循环加密。循环加密的次数由要加密文件的大小所决定。如下:以文件流的方式读取将要加密的文件,得到文件的文件流字节数组a,数组a中每一位的值为-128~127的整数;将数组a和logistic映射迭代转换值进行一轮的异或处理,处理方式为:对于给定的3.6<a0<4和迭代初始值0<x1<1,利用logistic迭代序列xn+1=α0*xn(1-xn),将得到的logistic迭代序列数组的值映射为取值范围为-128~0的整数的数组(方便与a异或),处理方式为:xn=[128*(xn-1)]([]取整)将新得到的整数数组(x)和原来的文件流字节数组a,按位异或即:可得到字节组b。对数组b进行置乱处理,给定的3.6<α1<4和迭代初始值0<x12<1,利用logistic迭代序列xn+1=α1*xn(1-xn),生成新的数组temp,对整个数组temp进行排序,保留排序后对应数值在原来数组(temp)的索引值(在原数组temp中的位置),得到索引数组;temp排序后每一个值在原来数组中的下标(位置)将数组b,按照索引数组进行置换得到数组c即亦即下标i123456b数组13-2211103120temp数组132465c数组1311-22101203将把数组的第temp[i](temp索引数组的第i位的值)位放在c数组的第i位上,对数组c进行异或处理得到新的字节数组d,处理方式为:当前位与之相邻的后两位同时进行异或操作,对数组d进行新一轮的置乱处理,得到新的数组e,对数组e根据加密文件大小情况,重复a-e的操作,得到数组f。对得到的数组f进行base64编码得到将要传输的字符串。上述具体的实施方式仅是本发明具体的个案,本发明的专利保护范围包括但不限于上述具体的实施方式,任何符合本发明的权利要求书的文件流字节组数据加密和网络传输方法且任何所述
技术领域
普通技术人员对其做出的适当变化或者替换,皆应落入本发明的专利保护范围。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1