一种文件传输方法及装置
本申请是原案申请号为CN201610166343.4、申请日为2016年3月22日、发明名称为“一种文件传输方法及装置”的发明专利申请的分案申请。
技术领域
本申请涉及信息技术领域,尤其涉及一种文件传输方法及装置。
背景技术
随着信息化社会的发展,人们越来越习惯于使用网络来进行业务。但在使用网络执行业务时,通常需要在多个设备间传输文件,而若该文件在传输过程中被不法分子篡改,则有可能造成信息泄露等安全问题。
在现有技术中,通常采用加密算法对文件进行加密的方式,防止文件在传输过程中被篡改。具体的,文件发送端,首先通过加密算法确定文件的密文,作为标准密文,之后将该文件与该标准密文分开发送至接收端。而当该接收端接收到该文件以及该标准密文后,可根据接收到的文件通过同样的加密算法确定该文件的密文,并作为对比密文,最后该接收端对比该标准密文与对比密文是否一致,若一致,则判断该文件没有被篡改过,若不一致则判断该文件在传输过程已被篡改,存在安全风险。
但是,由于文件与密文是分别传输的,所以当密文在传输过程中出现问题(如,传输失败或者传输出现延时)时,就会造成接收端无法对文件是否被篡改做出判断,可能导致文件处理时间延时、遗漏,造成损失。可见,现有的文件传输方法,增加了文件传输出错的几率,使文件的处理效率降低。
发明内容
本申请实施例提供一种文件传输方法及装置,用以解决现有技术的文件传输方法出错的几率高,文件的处理效率降低的问题。
本申请实施例提供的一种文件传输方法,包括:
发送端确定待发送的文件;
根据与接收端预先约定的盐值以及所述文件,确定所述文件的标准签名;
将所述标准签名插入所述文件中,作为签名文件;
发送所述签名文件至所述接收端,使所述接收端提取所述签名文件中的标准签名,根据所述盐值和接收到的所述签名文件,确定所述签名文件的对比签名,并根据所述对比签名与所述标准签名的比较结果,确定接收到的所述签名文件是否被篡改。
本申请实施例提供的一种文件传输方法,包括:
接收端接收发送端发送的签名文件;
提取所述签名文件中的标准签名;
根据与所述发送端预先约定的盐值以及所述签名文件,确定所述签名文件的对比签名;
将所述对比签名与所述标准签名进行对比,根据对比结果确定所述签名文件是否被篡改。
本申请实施例提供的一种文件传输装置,包括:
确定模块,用于确定待发送的文件;
签名模块,用于根据与接收端预先约定的盐值以及所述文件,确定所述文件的标准签名;
插入模块,用于将所述标准签名插入所述文件中,作为签名文件;
发送模块,用于发送所述签名文件至所述接收端,使所述接收端提取所述签名文件中的标准签名,根据所述盐值和接收到的所述签名文件,确定所述签名文件的对比签名,并根据所述对比签名与所述标准签名的比较结果,确定接收到的所述签名文件是否被篡改。
本申请实施例提供的一种文件传输装置,包括:
接收模块,用于接收发送端发送的签名文件;
提取模块,用于提取所述签名文件中的标准签名;
签名模块,用于根据与所述发送端预先约定的盐值以及所述签名文件,确定所述签名文件的对比签名;
判断结果模块,用于将所述对比签名与所述标准签名进行对比,根据对比结果确定所述签名文件是否被篡改。
本申请实施例提供一种文件传输方法及装置,该方法中发送端在确定了待发送的文件后,根据与接收端预先约定的盐值以及该文件,确定该文件的标准签名,将该标准签名插入该文件后,将该文件作为签名文件发送至接收端,而该接收端在接收该签名文件后,提取该签名文件中的标准签名,并通过同样的盐值以及所述签名文件确定对比签名,最后根据该对比签名与该标准签名的比较结果,确定接收到的该签名文件是否被篡改。通过上述方法,在文件传输时,无需另外发送该文件对应的签名,使得文件传输时的出错几率减小,文件的处理效率提高。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的文件传输过程;
图2为本申请实施例提供的一种对应于图1的文件传输过程;
图3为本申请实施例提供的服务器A与服务器B传输还款文件α的示意图;
图4为本申请实施例提供的一种文件传输装置的结构示意图;
图5为本申请实施例提供的一种对应于图4的文件传输装置的结构示意图。
具体实施方式
在本申请实施例中,发送端在确定待发送的文件后,先根据与接收端预先约定的盐值以及该文件,确定该文件对应的标准签名,再将该标准签名插入该文件中,作为签名文件发送至接收端。接收端在接收到该签名文件后,先提取该签名文件的标准签名,之后再根据与发送端预先约定的盐值以及该签名文件,确定该签名文件的对比签名,最后将该对比签名与标准签名经行对比,根据对比结果确定接收到的该签名文件是否被篡改。可见本申请所述的方法,无需将文件与该文件的签名分开发送,而只需与发送一次插入有标准签名的文件即可,使得文件传输时的出错几率减小,文件的处理效率提高。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的文件传输过程,具体包括以下步骤:
S101:发送端确定待发送的文件。
在本申请实施例中,所述发送端可以是终端也可以是服务器。当该发送端为终端时,该终端可以是手机、个人电脑(personalcomputer,pc)、平板电脑等,当该发送端为服务器时,该服务器可以是单独的一台设备,也可以是由多个设备组成的系统。
由于该发送端需要发送文件,所以该发送端首先需要确定需要传输的文件,即待发送的文件。并且,在确定该待发送的文件之后,该发送端还需要确定接收该文件的接收端,以便后续步骤处理。
另外,在本申请中该文件具体可以是还款文件,用于借款方与贷款方进行还款业务时,通过传输该还款文件来进行对应的还款业务。当然,在本申请中,该文件也可以是其他文件,如图片文件、通信文件、提现文件等等。以下,仅以服务器与服务器之间传输还款文件为例进行说明。
例如,借款方的服务器A向贷款方的服务器B传输还款文件α时,该服务器A需要确定该还款文件α,并根据该还款文件α,确定接收该还款文件α的接收端为服务器B,图3所示。
图3为本申请实施例提供的该服务器A与该服务器B传输该还款文件α的示意图。其中,该服务器A为发送端、该服务器B为接收端。
S102:根据与接收端预先约定的盐值以及所述文件,确定所述文件的标准签名。
在本申请实施例中,当确定了待发送的文件以及接收该文件的接收端后,为了防止该文件在传输过程中被不法分子篡改,该发送端还需要确定该文的标准签名,作为接收端判断接收到的文件是否被篡改的必要依据之一。
具体的,由于该发送端已经确定了待发送的文件以及接收端,所以可以先根据与该接收端预先约定的第一加密算法,确定该文件对应的字符串,之后再根据与该接收端预先约定的盐值,将该盐值插入到该字符串中,最后根据与该接收端预先约定的第二加密算法以及插入有盐值的字符串,确定该文件的标准签名。
其中,该第一加密算法和/或第二加密算法可以是安全哈希算法(SecureHashAlgorithm,SHA),也可以是消息摘要算法第五版(MessageDigest Algorithm5,MD5)。并且,该第一加密算法和/或第二加密算法还可以是由SHA和MD5组合而成的算法(如,将字符串先进行SHA计算后,将得到的结果再次进行MD5计算)。当然,除了SHA和MD5之外,本申请还可以采用其他算法或者算法组合作为该第一加密算法和/或第二加密算法,如RACE原始完整性校验消息摘要(RACEIntegrityPrimitivesEvaluationMessageDigest,RIPEMD)等,具体采用何种算法或者算法组合作为该第一加密算法或该第二加密算法,本申请并不做具体限定。
需要说明的是,在本申请中不仅该盐值以及该第一加密算法和/或第二加密算法均为该文件的发送端与接收端预先约定的,并且发送端与接收端也可预先约定该盐值插入该文件的字符串的位置(如,将该盐值插入该文件字符串中的第5个和第6个字符串之间)。
进一步的,为了防止不法分子通过建立包含所有盐值的查询表,以该标准签名遍历该随机表的方式来破译该文件的标准签名,确定该盐值,在本申请中,该发送端与接收端可以约定位数较多的盐值(如,32位的随机数),使得不法分子难以建立包含所有盐值的查询表,以降低该标准签名被破译的可能性。其中,在密码学中,将通过在密码中的任意固定位置插入特定的字符串,让该插入特定的字符串的密码的散列结果和该密码单独进行散列的散列结果不相符的过程,称为“加盐”,插入到密码中的该特定的字符串被称为“盐值”。于是,在本申请中所述的盐值,实质上是一段字符串,并且是该发送端与该接收端预先约定的字符串。
继续沿用上例,如图3所示,假设该服务器A与该服务器B约定的盐值为b3d846a0bab8ad9d78a5469e26ed1618,即一个32位的随机数。则,该服务器A根据与该服务器B预先约定的盐值以及该还款文件α,确定该还款文件α的标准签名的具体过程为:该服务器A先以SHA确定该还款文件α对应的40位16进制字符串,再将该40位16进制字符串的末尾加上约定的盐值后,以MD5确定的32位16进制字符串作为标准签名,即md5(sha(还款文件α的字符串)+盐值)。进一步假设,该文件的字符串经过SHA计算后为92b10e0158af9244905d15cb57ec99e9607b4502,则,该发送端可以确定该还款文件α的标准签名为:e96f0436b40bfcbfe6daf6a49bb57a7c。
S103:将所述标准签名插入所述文件中,作为签名文件。
在本申请实施例中,当确定了该文件对应的标准签名后,便可以将该签名插入该文件中,作为签名文件。使得后续发送该文件时,该发送端仅需发送该签名文件即可,无需如现有技术中需要分别发送文件和签名,可避免文件与签名不能同时到达接收端的问题。
具体的,该文件发送端可将该标准签名,插入该文件的文件名中,并将文件名中插入了标准签名的文件作为签名文件。当然,该标准签名也可以直接插入该文件的字符串中,本申请对该标准签名插入该文件的位置并不做具体限定。
另外,该标准签名的插入该文件的具体位置,也需要根据该发送端与该接收端预先约定来确定,以便后续该接收端在接收该签名文件后,可以根据预先约定的标准签名插入位置,确定该标准签名。
继续沿用上例,如图3所示,假设该服务器A与该服务器B约定的标准签名插入位置为该文件的文件名的末尾,并以符号“_”,与原文件名隔开。则进一步假设该文件的文件名为“XXX_refund_20160218_1007863.txt”,那么该服务器A再将该标准签名插入该还款文件α的文件名后,该文件名为“XXX_refund_20160218_1007863_e96f0436b40bfcbfe6daf6a49bb57a7c.txt”,此时该文件为签名文件α,即插入有标准签名的还款文件α。
S104:发送所述签名文件至所述接收端,使所述接收端提取所述签名文件中的标准签名,根据所述盐值和接收到的所述签名文件,确定所述签名文件的对比签名,并根据所述对比签名与所述标准签名的比较结果,确定接收到的所述签名文件是否被篡改。
在本申请实施例中,当确定了该签名文件后,便可将该签名文件发送至接收端,使该接收端可以通过解析该签名文件,确定接收到的该签名文件是否被篡改。
具体的,由于该签名文件中插入有该文件对应的标准签名,而该标准签名的生成方式是该发送端根据与该接收端预先约定的。所以该接收端可以通过解析该签名文件,判断该文件是否被篡改。
继续沿用上例,如图3所示,则该服务器A将文件名为“XXX_refund_20160218_1007863_e96f0436b40bfcbfe6daf6a49bb57a7c.txt”的还款文件α发(即,签名文件α)送至服务器B(即,接收端)。
通过图1所示的文件传输方法,该发送端在确定了待发送的文件以及该文件的接收端后,先根据与该接收端预先约定的盐值、第一加密算法、第二加密算法以及该文件的字符串,确定该文件对应的标准签名,之后再根据与该接收端预先约定的方式,将该标准签名插入该文件中,作为签名文件,最后再将该签名文件发送给该接收端,是该接收端通过解析该签名文件,确定接收到的该签名文件是否被篡改过。相对于现有方法,在本申请提供的方法中,由于将该标准签名插入该文件中,使该发送端只需发送该签名文件即可,而无需分别发送该文件以及该标准签名,减少了发送端需要发送的文件数量,也减少了文件发送时出现错误的次数,同时也避免了接收端只有接收到该文件和与该文件对应的标准签名后,才能对该文件进行处理,导致文件处理效率降低的问题。
另外,为了提高该标准签名的安全性,即提高该标准签名的破解难度,在本申请中,该预先约定的盐值、第一加密算法、第二加密算法以及盐值插入的位置,均可以是根据该发送端与该接收端约定的规则改变的。
具体的,该发送端与该接收端可以约定,将该预先约定的盐值、第一加密算法、第二加密算法以及盐值插入的位置,以日期的单双号来区分,即单号日使用的盐值、单号日使用的第一加密算法、单号日使用的第二加密算法以及单号日使用的该盐值的插入位置,与双号日使用的盐值、双号日使用的第一加密算法、双号日使用的第二加密算法以及双号日使用的该盐值的插入位置做出区分,进一步使得该发送端确定的标准签名难以被不法分子破译。
进一步的,根据同样的思路,在本申请中,该标准签名插入该文件的位置也可以根据该发送端与该接收端约定的规则而改变。
基于图1所示的文件传输过程,本申请实施例还提供了对应于发送端的一种接收端的文件传输过程,如图2所示。
图2为本申请实施例提供的一种对应于图1的文件传输过程,具体包括以下步骤:
S201:接收端接收发送端发送的签名文件。
在本身实施例中,由于接收端需要对接收到的签名文件进行解析,并确定该签名文件是否被篡改,所以该接收端需要先接收到该签名文件,并且进一步的确定改签名文件的发送端,以便后续步骤的进行。
需要说明的是,该接收端可以是终端也可以是服务器。当该发送端为终端时,该终端可以是手机、个人电脑、平板电脑等,当该发送端为服务器时,该服务器可以是单独的一台设备,也可以是由多个设备组成的系统。
该签名文件可以是插入有标准签名的还款文件,本申请对该文件的格式以及内容并不做具体限定。以下,仅以服务器与服务器之间传输还款文件为例进行说明。
继续沿用上例,如图3所示,服务器B接收到了服务器A发送的插入有标准签名的还款文件α,即,签名文件α,而且该服务器B还可以确定该签名文件α是由该服务器A发送的,则该服务器B可以确定该签名文件α的发送端为服务器A。
S202:提取所述签名文件中的标准签名。
在本申请实施例中,该接收端可以提取改签名文件中的标准签名,以便后续步骤中该接收端可以将该标准签名作为判断该签名文件是否被篡改的条件之一。
具体的,由于该接收端已经确定了该发送端,所以该接收端可以根据与该发送端预先约定的标准签名插入位置,从该签名文件中提取出该签名文件对应的标准签名。并且,该约定的标准签名的插入位置,可以位于该签名文件的文件名中,也可以位于该签名文件的字符串中,具体的插入位置本申请并不做具体限定,可以由该发送端与该接收端灵活的约定。
另外,若该发送端与该接收端约定的是将该标准签名插入该签名文件的字符串中,则该接收端再提取出该标准签名后,需要将该签名文件字符串中的标准签名删除掉,以便将后续可以根据该签名文件确定正确的对比签名。如,假设该签名文件的标准签名是插入位置在该签名文件字符串的第10至第15个字符,则该接收端在提取出该标准签名后,需要删除该签名文件的第10至第15个字符。
继续沿用上例,如图3所示,由于该还款文件α的文件名为“XXX_refund_20160218_1007863_e96f0436b40bfcbfe6daf6a49bb57a7c.txt”,并且该服务器A与该服务器B预先约定的是将该标准签名插入该签名文件的文件名最后32位中,并以符号“_”与原文件名隔开,则该服务器B可从该签名文件α的文件名中提取出该签名文件α的标准签名“e96f0436b40bfcbfe6daf6a49bb57a7c”。
S203:根据与所述发送端预先约定的盐值以及所述签名文件,确定所述签名文件的对比签名。
在本申请实施例中,该接收端在提取出该签名文件的标准签名后,便可将该签名文件还原为插入该标准签名前的文件的原始状态,并且可以进一步的确定该签名文件的对比签名,而由于确定该签名文件的对比签名时,所用到的盐值、第一加密算法、第二加密算法以及盐值的插入位置均是该接收端与该发送端预先约定的,所以这一过程与发送端在确定该文件的标准签名的过程是一致的。
具体的,该接收端可根据与该发送端预先约定的盐值、该盐值的插入位置,先根据与该发送端预先约定的第一加密算法,确定该签名文件对应的字符串,之后再根据与该发送端预先约定的盐值,将该盐值插入到该字符串中,最后根据与该发送端预先约定的第二加密算法以及插入有盐值的字符串,确定该签名文件的对比签名。
继续沿用上例,如图3所示,该服务器B根据SHA确定该签名文件α对应的字符串,再将与该服务器A约定的盐值插入该字符串中,最后根据MD5确定该签名文件α对应的对比签名。
S204:将所述对比签名与所述标准签名进行对比,根据对比结果确定所述签名文件是否被篡改。
在本申请实施例中,该接收端在确定该签名文件的对比签名后,便可将该对比签名与确定的该标准签名进行对比,即,确定该对比签名与该标准签名是否一致,若一致,则确定该签名文件在传输过程中未被篡改,若不一致,则确定该签名文件已经被篡改。
具体的,由于该接收端在提取该签名文件中的标准签名后,该签名文件的字符串就应该与插入该标准签名前的文件的字符串是一致的,并且该接收端在确定对比签名时的每一步过程均与该接收端确定该标准签名时是一致的,所以若该签名文件的字符串没有被篡改过的话,该接收端确定的对比签名应该与该发送端确定的标准签名也是一致的,于是,通过对比该对比签名与该标准签名是否一致便可以确定该签名文件在传输过程中是否被篡改过。
另外,由于在该发送端将该文件变为该签名文件的过程中,所有可变量(如,盐值的具体内容、盐值的插入位置、第一加密算法、第二加密算法以及标准签名的插入位置)均是该接收端与该发送端预先约定的,所以不法分子很难通过拦截该签名文件而破译以上所有变量,并篡改该签名文件。于是只要该签名文件被篡改,则该接收端确定的对比签名就会与该发送端确定的标准签名不一致。
继续沿用上例,,如图3所示,假设该服务器B通过与该服务器A预先约定的盐值、盐值的插入位置、第一加密算法以及第二加密算法确定该签名文件α的对比签名为:“e96f0436b40bfcbfe6daf6a49bb57a7c”。则此时该服务器B可以通过对比该对比签名与该标准签名,判断该对比签名与该标准签名是否一致。由于该标准签名同样为:“e96f0436b40bfcbfe6daf6a49bb57a7c”,所以该服务器B可以确定该对比签名与该标准签名一致,该签名文件α(即,还款文件α)未被篡改过,可以安全的用该还款文件α执行对应的还款业务。
基于图1所示的文件传输过程,本申请实施例还提供一种文件传输装置,如图4所示。
图4是本申请实施例提供一种文件传输装置的结构示意图,具体包括:
确定模块301,用于确定待发送的文件;
签名模块302,用于根据与接收端预先约定的盐值以及所述文件,确定所述文件的标准签名;
插入模块303,用于将所述标准签名插入所述文件中,作为签名文件;
发送模块304,用于发送所述签名文件至所述接收端,使所述接收端提取所述签名文件中的标准签名,根据所述盐值和接收到的所述签名文件,确定所述签名文件的对比签名,并根据所述对比签名与所述标准签名的比较结果,确定接收到的所述签名文件是否被篡改。
签名模块302具体用于,根据与所述接收端预先约定的第一加密算法,确定所述文件对应的字符串,将所述盐值插入到所述字符串中,根据与所述接收端预先约定的第二加密算法以及插入有盐值的字符串,确定所述文件的标准签名。
插入模块303具体用于,将所述标准签名插入所述文件的文件名中。
所述文件为还款文件。
具体的,上述如图4所示的文件传输装置可以位于终端或者服务器中。该终端可以是手机、个人电脑、平板电脑等,该服务器可以是单独的一台设备,也可以是由多个设备组成的系统。
基于图2所示的文件传输过程,本申请实施例还提供一种对应于图3的文件传输装置,如图5所示。
图5是本申请实施例提供一种对应于图4的文件传输装置的结构示意图,具体包括:
接收模块401,用于接收发送端发送的签名文件;
提取模块402,用于提取所述签名文件中的标准签名;
签名模块403,用于根据与所述发送端预先约定的盐值以及所述签名文件,确定所述签名文件的对比签名;
判断结果模块404,用于将所述对比签名与所述标准签名进行对比,根据对比结果确定所述签名文件是否被篡改。
所述提取模块402具体用于,从所述签名文件的文件名中,提取所述签名文件的标准签名。
所述判断结果模块404具体用于,判断所述对比签名与所述标准签名是否一致,若是,则确定所述待发送签名文件未被篡改,若否,则确定所述待发送签名文件已被篡改。
所述文件为还款文件。
具体的,上述如图5所示的文件传输装置可以位于终端或者服务器中。该终端可以是手机、个人电脑、平板电脑等,该服务器可以是单独的一台设备,也可以是由多个设备组成的系统。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。