一种文件加解密方法和装置制造方法
【专利摘要】本发明公开了一种文件加解密方法和装置,包括用户选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据;将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调;使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作;对整个所述二进制流的文件进行求反操作。因此,所述的文件加解密方法和装置能够保证信息的安全性,提高对信息的加密强度。
【专利说明】—种文件加解密方法和装置
【技术领域】
[0001]本发明涉及信息安全领域,特别是指一种文件加解密方法和装置。
【背景技术】
[0002]数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
[0003]现有的加密过程:用户选择加密的文件后,判断密码格式的有效性,选择自有的加密算法进行加密。现有的解密过程:用户选择需要解密的文件,如果正确输入了解密密码,根据解密算法进行解密。如果密码输入错误,提示用户重复输入密码。因此,可以看出目前的加解密方法和装置至少存在着下述缺陷:
[0004]1、多重加密后解密过程不灵活:多重加密后,解密过程只能按照特定顺序进行解密。在进行第一次加密后,如对加密文件进行第二次或者第三次加密,由于加密算法的限制,那么解密过程必须严格按照加密的倒序进行。即如果是三次加密,加密的密码各不相同,那么现行的过程中,解密必须是先解第三次密码,解密成功后,才能解第二次密码,最后解第一次密码。另外,如果只记录了密码,没有记录顺序,那么将需要多重尝试后才能解密,如果加密次数较多,解密过程很困难。
[0005]2、公共算法易破解:加密算法已是公开资源,易于破解。目前主流的加密算法,已被各层技术爱好者尝试过破解,因此加密算法本身存在多点攻击的可能。
[0006]3、密码校验过程,增加破解几率:目前的技术在进行解密过程中,针对错误密码将提示用户密码是错误。此时并不对加密文件进行任何更改。这里存在一定的安全隐患,即由于输入错误密码的次数没有限制,破解密码软件往往通过穷举法的方式,进行密码的暴力破解,通过不断尝试各类字符的组合,可以在一定程度上实现密码的破解,增加了文件破解几率。
【发明内容】
[0007]有鉴于此,本发明的目的在于提出一种文件加解密方法和装置,能够保证信息的安全性,提高对信息的加密强度。
[0008]基于上述目的本发明提供的一种文件加密方法,包括以下步骤:
[0009]A、用户选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据;
[0010]B、将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调;
[0011]C、使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作;[0012]D、对整个所述二进制流的文件进行求反操作。
[0013]可选地,在步骤B中对所述加密文件解析成二进制流之前,判断所述加密文件的大小是否大于10KB,若大于则分别在所述加密文件的头、尾截取大小相同的文件流,若小于则返回步骤A。
[0014]进一步地,在步骤B中当所述加密文件的大小大于IOKB时,将所述加密文件按照二进制流的方式进行解析,并分别截取文件头5KB和文件尾5KB大小的文件流;然后将所述文件头5KB的文件流与所述文件尾5KB大小的文件流进行对调。
[0015]进一步地,步骤C首先是将对调后的头、尾两部分文件流分别分成相同位数的几组数据,其每组位数与所述二进制流的密码位数相同;然后,使用所述解析成二进制流的密码依次对所述分成的每组数据进行异或操作。
[0016]进一步地,步骤A中用户输入的密码为O至9的数字组合,并且密码位数为10位以内。
[0017]基于上述目的,本发明还提供了一种文件解密方法,包括以下步骤:
[0018]A、用户选择要解密的文件;
[0019]B、读取用户输入的解密密码,判断该解密密码是否正确,若错误则退出所述对该文件的解密过程,若正确则并将该密码解析成二进制流数据;
[0020]C、对所述要解密的文件整体求反;
[0021]D、对整体求反后所述要解密的文件截取大小相同的头、尾的文件流,使用所述解析成二进制流的密码对所述截取的文件头、尾文件流分别进行异或操作;
[0022]E、将进行异或操作后的所述要解密的文件头、尾的文件流对调。
[0023]可选地,步骤B在读取用户输入的解密密码之后,需要对用户输入的解密密码进行判断,若正确则将该解密密码解析成二进制流数据;若不正确则退出所述对该文件的解密过程,不会提示用户输入了错误解密密码,退出所述对该文件的解密过程,直接进入到上面所述的对该文件进行加密的方法过程中,对已经加过密的该文件进行再次加密。
[0024]基于上述目的,本发明还提供了一种文件加密装置,包括:
[0025]选择加密文件模块,用于用户选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据;
[0026]对调模块,与所述选择加密文件模块相连,用于将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调;
[0027]异或模块,与所述对调模块相连,用于使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作;
[0028]求反模块,与所述异或模块相连,用于对整个所述二进制流的文件进行求反操作。
[0029]基于上述目的,本发明还提供了一种文件解密装置,包括:
[0030]选择解密文件模块,用于用户选择要解密的文件。
[0031]解密密码读取模块,与所述选择解密文件模块相连,用于读取用户输入的解密密码,判断该解密密码是否正确,若错误则退出所述对该文件的解密过程,若正确则将该解密密码解析成二进制流数据;
[0032]求反模块,与所述解密密码读取模块相连,用于对所述要解密的文件整体求反;[0033]异或模块,与所述求反模块相连,用于对整体求反后所述要解密的文件截取大小相同的头、尾的文件流,使用所述解析成二进制流的密码对所述截取的文件头、尾文件流分别进行异或操作;
[0034]对调模块,与所述异或模块相连,用于将进行异或操作后的所述要解密的文件头、尾的文件流对调。
[0035]可选地,所述解密密码读取模块在对用户选择的文件进行解密的过程中,在读取用户输入的解密密码之后,需要对用户输入的解密密码进行判断,若正确则将该解密密码解析成二进制流数据;若不正确则退出所述对该文件的解密过程,不会提示用户输入了错误解密密码,并且所述解密密码读取模块与上面所述的加密装置中的选择加密文件模块相连,所述选择加密文件模块将该错误解密密码视为加密密码,对已经加过密的该文件进行再次加密。
[0036]从上面所述可以看出,本发明提供的一种文件加解密方法和装置,用户选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据;将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调;使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作;对整个所述二进制流的文件进行求反操作。从而,本发明所述的文件加解密方法和装置提出了全新的加解密方法和装置,同时增强了安全性,不易被破解。
【专利附图】
【附图说明】
[0037]图1为本发明实施例一种文件加密方法的流程示意图;
[0038]图2为本发明实施例文件头、尾对调的示意图;
[0039]图3为本发明实施例对调后的头、尾两部分文件流分组的示意图;
[0040]图4为本发明实施例一种文件解密方法的流程示意图;
[0041]图5为本发明实施例一种文件加密装置的结构示意图;
[0042]图6为本发明实施例一种文件解密装置的结构示意图。
【具体实施方式】
[0043]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0044]参阅图1所示,为本发明实施例一种文件加密方法的流程示意图,所述的基于文件流的文件加密方法包括:
[0045]步骤101,用户选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据。较佳地,用户输入的密码为O至9的数字组合,并且密码位数为10位以内。
[0046]步骤102,将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调。
[0047]在本发明的一个实施例中,一般情况下文件的属性数据需要占用5KB,并且在该文件的头部。因此,较佳地在对所述加密文件解析成二进制流之前,判断所述加密文件的大小是否大于10KB,若大于则分别在所述加密文件的头、尾截取大小相同的文件流,若小于则返回步骤101。优选地,当所述加密文件的大小大于IOKB时,将加密文件按照二进制流的方式进行解析,分别截取文件头5KB和文件尾5KB大小的文件流(如图2所示),然后将文件头5KB的文件流与文件尾5KB大小的文件流进行对调。此时,记录在所述文件头的文件属性数据已经转入到文件尾上,文件属性已转变为不可识别。
[0048]步骤103,使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作。
[0049]在本发明的另一个实施例中,首先将对调后的头、尾两部分文件流分别分成相同位数的几组数据,其每组位数与所述二进制流的密码位数相同。然后,使用解析成二进制流的密码依次对所述分成的每组数据进行异或操作。较佳地,当分成的最后一组不够所述二进制流的密码位数时,那么有几位就与二进制密码相对应的前几位进行异或操作。
[0050]例如,用户输入的密码为123,转成二进制码即为1111011,那么此时将对调后的文件头文件流分成每7位二进制为一组(如图3所示),依次与密码的二进制形式进行异或操作。当最后一组不够7位时,只有4位,那么就与二进制密码相对应的前4位进行异或操作。
[0051]步骤104,对整个所述二进制流的文件进行求反操作。
[0052]在本发明的另一个实施例中,针对完成步骤103之后的文件进行整体求反,例如,若经过步骤103后的该文件变为1101010001,则求反后变为0010101110。
[0053]参阅图4所示,为本发明实施例一种文件解密方法的流程示意图,根据上面所描述的所述文件的加密过程,对所述文件的解密方法进行说明,其解密方法包括:
[0054]步骤401,用户选择要解密的文件。
[0055]步骤402,读取用户输入的解密密码,判断该解密密码是否正确,若错误则退出所述对该文件的解密过程,若正确则并将该密码解析成二进制流数据。
[0056]作为本发明的另一个实施例,在对用户选择的文件进行解密的过程中,步骤402在读取用户输入的解密密码之后,需要对用户输入的解密密码进行判断,若正确则将该解密密码解析成二进制流数据。若不正确则退出所述对该文件的解密过程,不会提示用户输入了错误解密密码。优选地,当用户输入的解密密码错误时,退出所述对该文件的解密过程,直接进入到上面所述的对该文件进行加密的方法过程中,即对已经加过密的该文件进行再次加密。可以看出,错误密码将被执行加密操作,取消了提示用户输入错误密码的过程,取而代之的是利用错误密码进行再次加密。即用户输入错误密码后,通过加密方法,将对文件进行再次的加密。这样就解决了通过穷举法进行密码破解的途径。
[0057]步骤403,对所述要解密的文件整体求反。
[0058]步骤404,对整体求反后所述要解密的文件截取大小相同的头、尾的文件流,使用所述解析成二进制流的密码对所述截取的文件头、尾文件流分别进行异或操作。
[0059]在本发明的实施例中,其所述截取的文件头、尾文件流的大小与该文件加密时截取的文件头、尾文件流的大小相同。优选地,截取所述要解密的文件头、尾各5KB大小的文件流。
[0060]较佳地,在使用所述解析成二进制流的密码对所述截取的文件头、尾文件流进行异或操作时,是将文件头、尾文件流分别进行分组,其每组位数与所述二进制流的密码位数相同。然后,使用解析成二进制流的密码依次对所述分成的每组数据进行异或操作。当分成的最后一组不够所述二进制流的密码位数时,那么有几位就与二进制密码相对应的前几位进行异或操作。
[0061]步骤405,将进行异或操作后的所述要解密的文件头、尾的文件流对调。
[0062]在本发明的一个实施例中,由于所述要解密的文件在其进行加密的过程中,是对记录设置在文件头的文件属性数据转入到文件尾上,使文件属性转变为不可识别。因此,在对该文件进行解密的步骤405后,使文件属性数据从文件尾调回文件头,还原文件尾可读状态。
[0063]需要说明的是,由于本发明是基于文件的文件流进行加解密,因此对于一个文件进行多次加密后的解密过程可以按照任意顺序解密,而不需要完全按照多次加密的倒序进行。即:如三次加密,在解密的密码正确情况下,输入密码的顺序没有要求。只要次数和密码正确,最终文件的排序会按照原始文件进行还原,避免了用户忘记密钥的先后顺序造成的不断尝试。因为,文件流是一种二进制数据流,无论进行怎样的操作,其每位的操作后结果不是I就是0,所以对利用上述加密方法多次加密的文件解密不需要按照多次加密的倒序进行,使得解密过程极为灵活。
[0064]参阅图5所示,为本发明实施例一种文件加密装置的结构示意图,所述文件加密装置包括:
[0065]选择加密文件模块501,用户可以能够通过该选择加密文件模块501选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据。较佳地,用户输入的密码为O至9的数字组合,并且密码位数为10位以内。
[0066]对调模块502,与选择加密文件模块501相连,能够将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调。其具体功能包括:
[0067]在本发明的一个实施例中,一般情况下文件的属性数据需要占用5KB,并且在该文件的头部。因此,较佳地在对所述加密文件解析成二进制流之前,判断所述加密文件的大小是否大于10KB,若大于则分别在所述加密文件的头、尾截取大小相同的文件流,若小于则选择加密文件模块501重新选择需要加密的文件。优选地,当所述加密文件的大小大于IOKB时,将加密文件按照二进制流的方式进行解析,分别截取文件头5KB和文件尾5KB大小的文件流,然后将文件头5KB的文件流与文件尾5KB大小的文件流进行对调。此时,记录在所述文件头的文件属性数据已经转入到文件尾上,文件属性已转变为不可识别。
[0068]异或模块503,与对调模块502相连,所述异或模块503可以使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作。其具体功能包括:
[0069]在本发明的另一个实施例中,首先将对调后的的头、尾两部分文件流分别分成相同位数的几组数据,其每组位数与所述二进制流的密码位数相同。然后,使用解析成二进制流的密码依次对所述分成的每组数据进行异或操作。较佳地,当分成的最后一组不够所述二进制流的密码位数时,那么有几位就与二进制密码相对应的前几位进行异或操作。
[0070]例如,用户输入的密码为123,转成二进制码即为1111011,那么此时将对调后的文件头文件流分成每7位二进制为一组(如图3所示),依次与密码的二进制形式进行异或操作。当最后一组不够7位时,只有4位,那么就与二进制密码相对应的前4位进行异或操作。
[0071]求反模块504,与异或模块503相连,可以对整个所述二进制流的文件进行求反操作。
[0072]在本发明的另一个实施例中,针对异或模块503处理后的文件进行整体求反,例如,若经过异或模块503处理后的该文件变为1101010001,则求反后变为0010101110。
[0073]参阅图6所示,为本发明实施例一种文件解密装置的结构示意图,所述文件解密装置包括:
[0074]选择解密文件模块601,用户可以通过所述选择解密文件模块601选择要解密的文件。
[0075]解密密码读取模块602,与选择解密文件模块601相连,所述解密密码读取模块602可以读取用户输入的解密密码,判断该解密密码是否正确,若错误则退出所述对该文件的解密过程,若正确则将该解密密码解析成二进制流数据。其具体功能包括:
[0076]作为本发明的另一个实施例,在对用户选择的文件进行解密的过程中,在读取用户输入的解密密码之后,需要对用户输入的解密密码进行判断,若正确则将该解密密码解析成二进制流数据。若不正确则退出所述对该文件的解密过程,不会提示用户输入了错误解密密码。
[0077]优选地,当用户输入的解密密码错误时,退出所述对该文件的解密过程,此时解密密码读取模块602与选择加密文件模块501相连,所述选择加密文件模块501将该错误解密密码视为加密密码,并将该错误解密密码解析成二进制流数据。即进入上面所述的对该文件进行加密的过程中,对已经加过密的该文件进行再次加密。可以看出,错误密码将被执行加密操作,取消了提示用户输入错误密码的过程,取而代之的是利用错误密码进行再次加密。即用户输入错误密码后,通过加密方法,将对文件进行再次的加密。这样就解决了通过穷举法进行密码破解的途径。
[0078]求反模块603,与解密密码读取模块602相连,对所述要解密的文件整体求反。
[0079]异或模块604,与求反模块603相连,对整体求反后所述要解密的文件截取大小相同的头、尾的文件流,使用所述解析成二进制流的密码对所述截取的文件头、尾文件流分别进行异或操作。其具体功能包括:
[0080]在本发明的实施例中,其所述截取的文件头、尾文件流的大小与该文件加密时截取的文件头、尾文件流的大小相同。优选地,截取所述要解密的文件头、尾各5KB大小的文件流。
[0081]较佳地,在使用所述解析成二进制流的密码对所述截取的文件头、尾文件流进行异或操作时,是将文件头、尾文件流分别进行分组,其每组位数与所述二进制流的密码位数相同。然后,使用解析成二进制流的密码依次对所述分成的每组数据进行异或操作。当分成的最后一组不够所述二进制流的密码位数时,那么有几位就与二进制密码相对应的前几位进行异或操作。
[0082]对调模块605,与异或模块604相连,将异或模块604进行异或操作后的所述要解密的文件头、尾的文件流对调。其具体功能包括:
[0083]在本发明的一个实施例中,由于所述要解密的文件在其进行加密的过程中,是对记录设置在文件头的文件属性数据转入到文件尾上,使文件属性转变为不可识别。因此,在对该文件进行解密的时候,使文件属性数据从文件尾调回文件头,还原文件尾可读状态。
[0084]根据上面所描述地,本发明提出的一种文件加解密方法和装置,创造性的提出了全新的基于文件流的文件加解密方法和装置,创造性地将基于文件流排序的方式与用户输入的密码相结合,实现文件加解密的过程;本发明的加解密方法和装置其本身具有更强的独特性;而且,本发明在对多次加密的文件进行解密的时候,只需要用户记住每次的密码,而不需要记住其几次加密的顺序,方便了用户的使用,提高了用户的体验满意度;也使得该发明使用起来更为灵活;同时,传统的加密、解密方法存在隐患,可以通过穷举法等方式,对已加密的文件进行破解,为解决该隐患,加强加密文件的安全性,对错误的解密密码不会做出提示,而是退出解密过程,直接进入到上面的对该文件进行加密的过程中,即对已经加过密的该文件进行再次加密,进一步增强文件的安全性,从而自主性更高不易破解;与此同时,该发明创造性地针对文件属性数据进行操作处理,使得整个文件不可识别,既巧妙又实现了文件安全极佳的效果;最后,整个所述文件加解密方法和装置简便、紧凑,易于实现。
[0085]所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种文件加密方法,其特征在于,包括以下步骤: A、用户选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据; B、将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调; C、使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作; D、对整个所述二进制流的文件进行求反操作。
2.根据权利要求1所述的加密方法,其特征在于,在步骤B中对所述加密文件解析成二进制流之前,判断所述加密文件的大小是否大于10KB,若大于则分别在所述加密文件的头、尾截取大小相同的文件流,若小于则返回步骤A。
3.根据权利要求2所述的加密方法,其特征在于,在步骤B中当所述加密文件的大小大于IOKB时,将所述加密文件按照二进制流的方式进行解析,并分别截取文件头5KB和文件尾5KB大小的文件流;然后将所述文件头5KB的文件流与所述文件尾5KB大小的文件流进行对调。
4.根据权利要求2所述的加密方法,其特征在于,步骤C首先是将对调后的头、尾两部分文件流分别分成相同位数的几组数据,其每组位数与所述二进制流的密码位数相同;然后,使用所述解析成二进制流的密码依次对所述分成的每组数据进行异或操作。
5.根据权利要求1至4任意一项所述的加密方法,其特征在于,步骤A中用户输入的密码为O至9的数字组合,并且密码位数为10位以内。
6.一种文件解密方法,其特征在于,包括以下步骤: A、用户选择要解密的文件; B、读取用户输入的解密密码,判断该解密密码是否正确,若错误则退出所述对该文件的解密过程,若正确则并将该密码解析成二进制流数据; C、对所述要解密的文件整体求反; D、对整体求反后所述要解密的文件截取大小相同的头、尾的文件流,使用所述解析成二进制流的密码对所述截取的文件头、尾文件流分别进行异或操作; E、将进行异或操作后的所述要解密的文件头、尾的文件流对调。
7.根据权利要求6所述的解密方法,其特征在于,步骤B在读取用户输入的解密密码之后,需要对用户输入的解密密码进行判断,若正确则将该解密密码解析成二进制流数据;若不正确则退出所述对该文件的解密过程,不会提示用户输入了错误解密密码,退出所述对该文件的解密过程,直接进入到权利要求1至5所述的对该文件进行加密的方法过程中,对已经加过密的该文件进行再次加密。
8.一种文件加密装置,其特征在于,包括: 选择加密文件模块,用于用户选择需要加密的文件,读取用户输入的密码,并将该密码解析成二进制流数据; 对调模块,与所述选择加密文件模块相连,用于将所述加密文件解析成二进制流,分别在所述加密文件的头、尾截取大小相同的文件流,并将该文件头、尾截取的文件流进行对调;异或模块,与所述对调模块相连,用于使用所述解析成二进制流的密码对所述对调后的头、尾两部分文件流分别进行异或操作; 求反模块,与所述异或模块相连,用于对整个所述二进制流的文件进行求反操作。
9.一种文件解密装置,其特征在于,包括: 选择解密文件模块,用于用户选择要解密的文件。 解密密码读取模块,与所述选择解密文件模块相连,用于读取用户输入的解密密码,判断该解密密码是否正确,若错误则退出所述对该文件的解密过程,若正确则将该解密密码解析成二进制流数据; 求反模块,与所述解密密码读取模块相连,用于对所述要解密的文件整体求反; 异或模块,与所述求反模块相连,用于对整体求反后所述要解密的文件截取大小相同的头、尾的文件流,使用所述解析成二进制流的密码对所述截取的文件头、尾文件流分别进行异或操作; 对调模块,与所述异或模块相连,用于将进行异或操作后的所述要解密的文件头、尾的文件流对调。
10.根据权利要求9所述的解密装置,其特征在于,所述解密密码读取模块在对用户选择的文件进行解密的过程中,在读取用户输入的解密密码之后,需要对用户输入的解密密码进行判断,若正确则将该解密密码解析成二进制流数据;若不正确则退出所述对该文件的解密过程,不会提示用户输入了错误解密密码,并且所述解密密码读取模块与权利要求9所述的加密装置中的选择加密文件模块相连,所述选择加密文件模块将该错误解密密码视为加密密码,对已经加过密的该文件进行再次加密。
【文档编号】G06F21/10GK103500294SQ201310436266
【公开日】2014年1月8日 申请日期:2013年9月23日 优先权日:2013年9月23日
【发明者】吴鹏 申请人:北京荣之联科技股份有限公司