数据传输方法、装置、设备及存储介质与流程

    专利2022-07-07  101


    本申请涉及网络安全技术领域,具体涉及一种数据传输方法、装置、设备及存储介质。



    背景技术:

    随着互联网技术的发展,尤其在文件数据传输的应用上,网络传输已经是其主要的手段,而在传输文件数据之后,一般都会对接收到的数据进行校验,避免因为传输或者认为修改导致数据不一致。

    目前,主要是利用数据加密的方式来避免数据在传输过程中被修改,例如在双方都是业务类的系统时,两系统之间的业务数据会定时传输或同步,比如放款信息、还款计划、还款、逾期还款等等数据,这些数据由于数据量大,通常采用文件的方式与银行进行交互,但是往往会采用批量文件的方式,且可能存在每个文件的都非常大,不仅会存在传输时间过长的情况,而且会存在传输失败的情况,如果出现这种情况,没有一个终态表示文件是否上传成功或者全部传输成功,那数据将不完整,对此,在后续的校验中,只能校验数据是否一致,并不能校验出数据是否完整,从而出现缺失数据甚至导致生产问题。



    技术实现要素:

    本发明的主要目的是解决传统的数据校验方案中,不能实现数据的完整性和一致性的同时识别的技术问题。

    本发明第一方面提供了一种数据传输方法,所述数据传输方法包括:

    从业务系统中的服务器中读取待校验的数据传输文件,其中所述数据传输文件中包括原始数据文件和第一校验值;

    提取所述数据传输文件中的原始数据文件,并调用预设的数据封装规则,从所述原始数据文件中提取原始数据组;

    根据消息摘要算法计算所述原始数据组的第二校验值;

    将所述第一校验值与所述第二校验值进行比较,得到比较结果;

    若所述比较结果为不一致,则确定所述数据传输文件不完整且所述原始数据文件不一致,并通知输出端重新发送数据。

    可选地,在本发明第一方面的第一种实现方式中,在所述从业务系统中的服务器中读取待校验的数据传输文件之前,还包括:

    获取所述业务系统中的待传输数据;

    将所述待传输数据,按照所述数据封装规则进行分组进行分组封装,得到原始数据文件,并通过所述消息摘要算法计算所述原始数据文件中数据的第一校验值;

    将所述第一校验值和数据传输文件,合成数据传输文件,并发送至所述服务器进行存储。

    可选地,在本发明第一方面的第二种实现方式中,所述将所述待传输数据,按照所述数据封装规则进行分组进行分组封装,得到原始数据文件包括:

    根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段,其中,所述若干个数据段包括n个长度等于所述比特长度的原始数据段、1个原始数据剩余块,n为自然数;

    根据所述数据封装规则中的数据填充算法,对所述原始数据剩余块进行扩充,得到长度等于所述比特长度的扩充数据段;

    将所述若干个数据段平均分为m组,并在m组原始数据组中的每个数据段之后,增加数据长度记录字段,得到完整的数据块;

    将所有数据块进行分组级联,得到所述原始数据文件。

    可选地,在本发明第一方面的第三种实现方式中,所述通过所述消息摘要算法计算所述原始数据文件中数据的第一校验值包括:

    提取所述数据封装规则中的设置的消息摘要算法所采用的端序类型;

    判断所述端序类型与当前使用的消息摘要算法中的端序类型是否相同;

    若相同,则直接计算m个原始数据组的校验值之和,得到第一校验值;

    若不相同,则将m个原始数组按32位字节进行字节序倒转,并计算字节序待转后的校验值之验和,得到第一校验值。

    可选地,在本发明第一方面的第四种实现方式中,若所述数据块的比特长度为512位时,所述根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段包括:

    将所述待传输数据对512求余,得到计算结果;

    判断所述计算结果中的商值,将所述待传输数据划分为数量等于商值的原始数据段、1个原始数据剩余块。

    可选地,在本发明第一方面的第五种实现方式中,所述根据消息摘要算法计算所述原始数据组的第二校验值包括:

    根据所述消息摘要算法,计算所述原始数据组中的每个数据段的第二校验子值;

    基于每个数据段的校验值,计算出所述原始数据组的第二校验值和。

    可选地,在本发明第一方面的第六种实现方式中,所述将所述第一校验值与所述第二校验值进行比较,得到比较结果包括:

    比较所述第一校验值中的第一校验和与所述第二校验和进行比对;

    若比对不一致,则将所述第二校验子值与所述第一校验值中的第一校验子值进行比较,并输出比较结果。

    本发明第二方面提供了一种数据传输装置,所述数据传输装置包括:

    读取模块,用于从业务系统中的服务器中读取待校验的数据传输文件,其中所述数据传输文件中包括原始数据文件和第一校验值;

    提取模块,用于提取所述数据传输文件中的原始数据文件,并调用预设的数据封装规则,从所述原始数据文件中提取原始数据组;

    计算模块,用于根据消息摘要算法计算所述原始数据组的第二校验值;

    比较模块,用于将所述第一校验值与所述第二校验值进行比较,得到比较结果;

    通知模块,用于在所述比较结果为不一致时,确定所述数据传输文件不完整且所述原始数据文件不一致,并通知输出端重新发送数据。

    可选地,在本发明第二方面的第一种实现方式中,所述数据传输装置还包括存储模块,其具体用于

    获取所述业务系统中的待传输数据;

    将所述待传输数据,按照所述数据封装规则进行分组进行分组封装,得到原始数据文件,并通过所述消息摘要算法计算所述原始数据文件中数据的第一校验值;

    将所述第一校验值和数据传输文件,合成数据传输文件,并发送至所述服务器进行存储。

    可选地,在本发明第二方面的第二种实现方式中,所述存储模块具体用于:

    根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段,其中,所述若干个数据段包括n个长度等于所述比特长度的原始数据段、1个原始数据剩余块,n为自然数;

    根据所述数据封装规则中的数据填充算法,对所述原始数据剩余块进行扩充,得到长度等于所述比特长度的扩充数据段;

    将所述若干个数据段平均分为m组,并在m组原始数据组中的每个数据段之后,增加数据长度记录字段,得到完整的数据块;

    将所有数据块进行分组级联,得到所述原始数据文件。

    可选地,在本发明第二方面的第三种实现方式中,所述存储模块具体用于:

    提取所述数据封装规则中的设置的消息摘要算法所采用的端序类型;

    判断所述端序类型与当前使用的消息摘要算法中的端序类型是否相同;

    若相同,则直接计算m个原始数据组的校验值之和,得到第一校验值;

    若不相同,则将m个原始数组按32位字节进行字节序倒转,并计算字节序待转后的校验值之验和,得到第一校验值。

    可选地,在本发明第二方面的第四种实现方式中,所述存储模块具体用于:

    若所述数据块的比特长度为512位时,将所述待传输数据对512求余,得到计算结果;

    判断所述计算结果中的商值,将所述待传输数据划分为数量等于商值的原始数据段、1个原始数据剩余块。

    可选地,在本发明第二方面的第五种实现方式中,所述计算模块包括:

    第一计算单元,用于根据所述消息摘要算法,计算所述原始数据组中的每个数据段的第二校验子值;

    第二计算单元,用于基于每个数据段的校验值,计算出所述原始数据组的第二校验值和。

    可选地,在本发明第二方面的第六种实现方式中,所述比较模块包括:

    比较单元,用于比较所述第一校验值中的第一校验和与所述第二校验和进行比对;

    输出单元,用于在比对第一校验和与所述第二校验和不一致时,将所述第二校验子值与所述第一校验值中的第一校验子值进行比较,并输出比较结果。

    本发明第三方面提供了一种数据传输设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

    所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据传输设备执行上述的数据传输方法。

    本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述的数据传输方法。

    本发明提供的技术方案中,对文件进行md5加密与校验的处理能够使文件更加可靠,文件内容更加安全。不会再出现数据遗漏和数据缺失的情况,减少了生产问题的发生,和开发人员定位问题的成本,以后针对数据完全性和安全性都可以借鉴此解决方案解决类似的问题。

    附图说明

    图1为本发明实施例中数据传输方法的第一个流程示意图;

    图2为本发明实施例中数据传输方法的第二个流程示意图;

    图3为本发明实施例中数据传输方法的第三个流程示意图;

    图4为本发明实施例中数据传输装置的一个实施例示意图;

    图5为本发明实施例中数据传输装置的另一个实施例示意图;

    图6为本发明实施例中数据传输设备的一个实施例示意图。

    具体实施方式

    针对于上述的问题,本申请通过提出一种利用md5算法来对待传输的业务数据进行加密校验,并且在利用md5算法进行加密的过程中,根据设定的与md5算法对应的数据填充规则将业务数据转换成md5文件,然后对md5文件和业务数据传输出去,而接收端在接收到业务数据后,提取md5文件中的数据进行加密计算,得到校验值,将校验值与原来的加密值进行比较,从而实现了数据的完整性和一致性的比较,提高了数据的安全性和避免数据的缺失,减少了生成问题的发生。

    本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

    为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中数据传输方法的第一个实施例包括:

    101、从业务系统中的服务器中读取待校验的数据传输文件中的原始数据文件和第一校验值;

    该步骤中,所述待校验的数据传输文件可以是业务系统在当前时刻待传输的业务数据,也可以是业务系统中同步至其他业务系统或者终端的业务数据。

    这里具体是通过互联网通信链路从所述业务系统中的服务器上进行读取,而存储于服务器中的文件是以特定的数据文件或者数据格式进行存储,在实际应用中,对于存储于服务器上的数据,业务系统根据服务器的存储要求进行修改转换,形成数据传输文件后,再发送至服务器进行存储,其中业务系统对待传输数据的修改转换具体实现是确定业务系统对应的服务器以及服务器的类型,基于类型确定服务器的数据存储格式,其中该存储格式可以为存储文件模板和数据格式,基于数据存储格式对所述业务系统中的待传输数据进行数据的预处理,得到数据传输文件,将数据传输文件同步至服务器上。

    当数据存储格式为存储文件模板时,该预处理具体是根据存储文件模板提取待传输数据中的数据内容填充至存储文件模板中对应的项目中,生成对应的数据传输文件;进一步的,根据数据传输文件中数据的存储格式对原始数据计算其校验值,具体的利用消息摘要算法计算校验值,而在计算校验值时还可以是将原始数据划分多个数据段进行计算,得到多个校验子值,然后基于多个校验子值计算总的校验值,得到第一校验值。

    在本实施例中,在从服务器中获取到数据传输文件后,还包括对数据传输文件进行数据的解析,具体是提取其中携带用原始数据的原始数据文件和第一校验值,当然,在实际应用中,若业务系统对数据进行的分段处理的,则除了提取第一校验值之外,还包括提取其中的校验子值。

    102、提取数据传输文件中的原始数据文件,并调用预设的数据封装规则,从原始数据文件中提取原始数据组;

    在该步骤中,所述数据封装规则指的是业务系统在将数据上传服务器时采用的数据转换方法或者算法,具体的,该数据封装规则在业务系统上传数据时,将其添加到数据传输文件中一起上传,但是需要进行加密处理,而加解密的算法为由该业务系统与其他系统进行协议握手得到,在提取原始数据文件时,还包括提取其中的数据封装规则的密文,然后基于协议握手的解密算法进行解密,得到数据封装规则,然后基于数据封装规则对原始数据文件中携带的数据进行提取,得到原始数据组。

    在本实施例中,当所述数据封装规则为分段式数据处理时,则在提取数据时,根据分段式数据的封装方式,首先识别出所述原始数据文件中的每段数据段,然后将每段数据中的封装结构提取出来,并删除,得到原始数据段,最后将所有的原始数据段串联起来,等等原始数据组。

    103、根据消息摘要算法计算原始数据组的第二校验值;

    该步骤中,对于计算所述第二校验值时,其计算方式与业务系统中计算第一校验值的方式相同,具体是可以通过分组的方式来进行计算:

    首先,以512位分组的格式对所述原始数据组进行分组处理,并输出由四个32位分组组成的值;

    然后,将所述四个32位分组组成的值级联后,得到所述第二校验值。

    在实际应用中,该md5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值,而该128位散列值的数据就是第二校验数据,并存储在原始数据文件中。

    104、将第一校验值与第二校验值进行比较,得到比较结果;

    在本实施例中,所述比较结果包括两种,分别是不一致和一致,而在比较结果为不一致时,若第一校验值的计算方式为数据分段式,则还需要比较各个数据段的校验子值。

    在实际应用中,对于原始数据文件中存储的原始数据还可以为多个完整数据,而每个完整数据对应计算一个校验子值,然后将所有的校验子值计算出一个总值作为第一校验值,而在校验的过程中,则计算出的是第二校验值,这样不仅实现了单个数据的完整性的验证,还实现了再一个数据传输文件中实现多个完整数据的传输,大大提高的数据的处理效率。

    105、若比较结果为不一致,则确定数据传输文件不完整且原始数据文件不一致,并通知输出端重新发送数据。

    该步骤中,若比较结果为不一致时,在通知重新发送数据之前,还包括判断该数据的是否为复合式数据,复合式数据指的是原始数据文件中包含有多个完整的数据,若判断是,则识别所述原始数据文件中记录的每段数据,基于每段数据计算校验子值,然后与数据传输文件中存储的校验子值进行比较,根据比较结果来确定数据不完整的数据段,然后基于该数据段的具体标识信息和校验结果,生成数据更新请求,并叫该数据更新请求返回给输出端,输出端根据数据更新请求,截取对应的数据段同步至服务器中。

    通过对上述提供的方法的执行,对文件进行md5加密与校验的处理能够使文件更加可靠,文件内容更加安全。不会再出现数据遗漏和数据缺失的情况,减少了生产问题的发生,和开发人员定位问题的成本,以后针对数据完全性和安全性都可以借鉴此解决方案解决类似的问题。

    请参阅图2,本发明实施例中数据传输方法的第二个实施例包括:

    201、获取业务系统中的待传输数据;

    202、将待传输数据,按照数据封装规则进行分组进行分组封装,得到原始数据文件,并通过消息摘要算法计算原始数据文件中数据的第一校验值;

    在本实施例中,将所述待传输数据,按照所述数据封装规则进行分组进行分组封装,得到原始数据文件包括:

    根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段,其中,所述若干个数据段包括n个长度等于所述比特长度的原始数据段、1个原始数据剩余块,n为自然数;

    根据所述数据封装规则中的数据填充算法,对所述原始数据剩余块进行扩充,得到长度等于所述比特长度的扩充数据段;

    将所述若干个数据段平均分为m组,并在m组原始数据组中的每个数据段之后,增加数据长度记录字段,得到完整的数据块;

    将所有数据块进行分组级联,得到所述原始数据文件。

    203、将第一校验值和数据传输文件,合成数据传输文件,并发送至服务器进行存储;

    204、从业务系统中的服务器中读取待校验的数据传输文件中的原始数据文件和第一校验值;

    205、提取数据传输文件中的原始数据文件,并调用预设的数据封装规则,从原始数据文件中提取原始数据组;

    206、根据消息摘要算法计算原始数据组的第二校验值;

    在该步骤中,对于存储在服务器中的原始数据实质上就是从业务系统中备份过来的数据,在实际应用中,业务系统和服务器是一对实现相互验证的系统,而业务系统和服务器之间是通过数据接口相互连接的,并且通过定时器控制服务器定时从所述业务系统中读取数据进行存储,当然服务器在对读取到的数据进行存储时,可以不对原来的数据进行清理,而是累积存储,当服务器的存储空间不够用后,再选择性清理;也可以是服务器每从业务系统中读取一次数据就对服务器中的数据进行清理替换。

    207、将第一校验值与第二校验值进行比较,得到比较结果;

    208、若比较结果为不一致,则确定数据传输文件不完整且原始数据文件不一致,并通知输出端重新发送数据。

    业务系统在将待传输数据发送给服务器时,具体可以通过将传输数据逐一进行分片处理,并且分片处理的数据块按照存储时间戳的先后顺序进行传输,在传输的数据块的同时,还包括对每个数据块计算对应的子校验值,而在服务器一侧,也可以通过在计算接收到的数据块进行一一校验。

    通过上述的方式结合md5算法计算校验值来实现对服务器中的数据的完整性比对,大大节省的数据比较的时间长度,从而实现了数据的完整性和一致性的比较,提高了数据的安全性和避免数据的缺失,减少了生成问题的发生。

    请参阅图3,本发明实施例中数据传输方法的另一种实施例包括:

    301、获取业务系统中的待传输数据;

    302、根据数据封装规则中规定的数据块的比特长度,将待传输数据划分为若干个数据段;

    其中,所述若干个数据段包括n个长度等于所述比特长度的原始数据段、1个原始数据剩余块,n为自然数;

    303、根据数据封装规则中的数据填充算法,对原始数据剩余块进行扩充,得到长度等于比特长度的扩充数据段;

    304、将若干个数据段平均分为m组,并在m组原始数据组中的每个数据段之后,增加数据长度记录字段,得到完整的数据块;

    305、将所有数据块进行分组级联,得到原始数据文件;

    在实际应用中,对于采用md5算法计算第一校验值的具体实现过程如下:

    第一步、填充:如果输入信息的长度(bit)对512求余的结果不等于448,就需要填充使得对512求余的结果等于448。填充的方法是填充一个1和n个0。填充完后,信息的长度就为n*512 448(bit);

    在实际应用中,从原始数据文件中提取到的数据按照数据封装规则进行分组填充处理,具体的将数据的位长对512与448进行求余,根据求余的结果进行填充,即使其位长对512求余的结果等于448。最后数据的位长(bitslength)将被扩展至n*512 448,n为一个非负整数,n可以是零。其填充的方法为:在数据的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对数据的填充。

    第二步、记录信息长度:用64位来存储填充前信息长度。这64位加在第一步结果的后面,这样信息长度就变为n*512 448 64=(n 1)*512位。

    具体的,在上述分组后的结果后面附加一个以64位二进制表示的填充前数据长度(单位为bit),如果二进制表示的填充前数据长度超过64位,则取低64位,以实现对数据的长度的记录。

    经过这两步的处理,数据的位长=n*512 448 64=(n 1)*512,即长度恰好是512的整数倍。

    第三步、装入标准的幻数;

    具体的,以初始的128位散序列为初试链接变量,这些参数用于第一轮的运算,以大端字节序来表示,他们分别为:

    a=0x01234567,

    b=0x89abcdef,

    c=0xfedcba98,

    d=0x76543210。

    (每一个变量给出的数值是高字节存于内存低地址,低字节存于内存高地址,即大端字节序。在程序中变量a、b、c、d的值分别为0x67452301,0xefcdab89,0x98badcfe,0x10325476)。

    第四步、四轮循环运算:循环的次数是分组的个数(n 1)。

    在实际应用中,每一分组的算法流程如下:

    (1)第一分组需要将上面四个链接变量复制到另外四个变量中:a到a,b到b,c到c,d到d。

    (2)从第二分组开始的变量为上一分组的运算结果,即a=a,b=b,c=c,d=d。

    进一步的,主循环有四轮(md4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向左环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。

    一个md5运算由类似的64次循环构成,分成4组16次。

    306、通过消息摘要算法计算原始数据文件中数据的第一校验值;

    提取所述数据封装规则中的设置的消息摘要算法所采用的端序类型;

    判断所述端序类型与当前使用的消息摘要算法中的端序类型是否相同;

    若相同,则直接计算m个原始数据组的校验值之和,得到第一校验值;

    若不相同,则将m个原始数组按32位字节进行字节序倒转,并计算字节序待转后的校验值之验和,得到第一校验值。

    在本实施例中的,对于使用消息摘要算法计算数据的第一校验值或者第二校验值时,具体还包括对根据实际的计算要求来选择对应的计算方式,在实际应用中,消息摘要算法包括两种应用,这里两种应用按照端序进行划分,而端序包括小端序和大端序,具体的实现步骤:

    识别所述服务器上的数据安全等级,基于数据安全等级确定端序类型;

    判断端序类型与当前消息摘要算法是否一致,如果一致,则直接计算n个64byte原始数据分组的md5校验和,如果不一致,则先将n个64byte原始数分组按32位字节进行字节序倒转,然后计算md5校验和;

    进一步的,在确定服务器的端序类型之后,还包括判断服务器是否是小端序计算类型服务器,如果是,合并1个原始数据剩余块和1个扩充数据块,按照64byte进行分组,并继续计算,得到最终md5校验和,如果否,合并1个原始数据剩余块和1个扩充数据块,并按照64byte进行分组,再对得到的每个分组按32位字节进行字节序倒转,然后计算md5校验和,得到最终md5值。

    进一步的,若所述数据块的比特长度为512位时,所述根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段包括:

    将所述待传输数据对512求余,得到计算结果;

    判断所述计算结果中的商值,将所述待传输数据划分为数量等于商值的原始数据段、1个原始数据剩余块。

    307、将第一校验值和数据传输文件,合成数据传输文件,并发送至服务器进行存储;

    308、从业务系统中的服务器中读取待校验的数据传输文件中的原始数据文件和第一校验值;

    309、提取数据传输文件中的原始数据文件,并调用预设的数据封装规则,从原始数据文件中提取原始数据组;

    310、根据消息摘要算法计算原始数据组的第二校验值;

    该步骤中,根据所述消息摘要算法,计算所述原始数据组中的每个数据段的第二校验子值;

    基于每个数据段的校验值,计算出所述原始数据组的第二校验值和。

    311、将第一校验值与第二校验值进行比较,得到比较结果;

    在该步骤中,比较所述第一校验值中的第一校验和与所述第二校验和进行比对;

    若比对不一致,则将所述第二校验子值与所述第一校验值中的第一校验子值进行比较,并输出比较结果。

    312、若比较结果为不一致,则确定数据传输文件不完整且原始数据文件不一致,并通知输出端重新发送数据。

    通过上述方案的实施,利用md5算法来对待传输的业务数据进行加密校验,并且在利用md5算法进行加密的过程中,根据设定的与md5算法对应的数据填充规则将业务数据转换成md5文件,然后对md5文件和业务数据传输出去,而接收端在接收到业务数据后,提取md5文件中的数据进行加密计算,得到校验值,将校验值与原来的加密值进行比较,从而实现了数据的完整性和一致性的比较,提高了数据的安全性和避免数据的缺失,减少了生成问题的发生。

    上面对本发明实施例中数据传输方法进行了描述,下面对本发明实施例中数据传输装置进行描述,请参阅图4,本发明实施例中数据传输装置的第一个实施例包括:

    读取模块401,用于从业务系统中的服务器中读取待校验的数据传输文件,其中所述数据传输文件中包括原始数据文件和第一校验值;

    提取模块402,用于提取所述数据传输文件中的原始数据文件,并调用预设的数据封装规则,从所述原始数据文件中提取原始数据组;

    计算模块403,用于根据消息摘要算法计算所述原始数据组的第二校验值;

    比较模块404,用于将所述第一校验值与所述第二校验值进行比较,得到比较结果;

    通知模块405,用于在所述比较结果为不一致时,确定所述数据传输文件不完整且所述原始数据文件不一致,并通知输出端重新发送数据。

    在本实施例中,所述数据传输装置运行上述数据传输方法,该方法通过对文件进行md5加密与校验的处理能够使文件更加可靠,文件内容更加安全。不会再出现数据遗漏和数据缺失的情况,减少了生产问题的发生,和开发人员定位问题的成本,以后针对数据完全性和安全性都可以借鉴此解决方案解决类似的问题。

    请参阅图5,本发明实施例中数据传输装置的第二个实施例,该数据传输装置具体包括:

    读取模块401,用于从业务系统中的服务器中读取待校验的数据传输文件,其中所述数据传输文件中包括原始数据文件和第一校验值;

    提取模块402,用于提取所述数据传输文件中的原始数据文件,并调用预设的数据封装规则,从所述原始数据文件中提取原始数据组;

    计算模块403,用于根据消息摘要算法计算所述原始数据组的第二校验值;

    比较模块404,用于将所述第一校验值与所述第二校验值进行比较,得到比较结果;

    通知模块405,用于在所述比较结果为不一致时,确定所述数据传输文件不完整且所述原始数据文件不一致,并通知输出端重新发送数据。

    在本实施例中,所述数据传输装置还包括存储模块406,其具体用于

    获取所述业务系统中的待传输数据;

    将所述待传输数据,按照所述数据封装规则进行分组进行分组封装,得到原始数据文件,并通过所述消息摘要算法计算所述原始数据文件中数据的第一校验值;

    将所述第一校验值和数据传输文件,合成数据传输文件,并发送至所述服务器进行存储。

    可选地,所述存储模块406具体用于:

    根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段,其中,所述若干个数据段包括n个长度等于所述比特长度的原始数据段、1个原始数据剩余块,n为自然数;

    根据所述数据封装规则中的数据填充算法,对所述原始数据剩余块进行扩充,得到长度等于所述比特长度的扩充数据段;

    将所述若干个数据段平均分为m组,并在m组原始数据组中的每个数据段之后,增加数据长度记录字段,得到完整的数据块;

    将所有数据块进行分组级联,得到所述原始数据文件。

    可选地,所述存储模块406具体用于:

    提取所述数据封装规则中的设置的消息摘要算法所采用的端序类型;

    判断所述端序类型与当前使用的消息摘要算法中的端序类型是否相同;

    若相同,则直接计算m个原始数据组的校验值之和,得到第一校验值;

    若不相同,则将m个原始数组按32位字节进行字节序倒转,并计算字节序待转后的校验值之验和,得到第一校验值。

    可选地,所述存储模块406具体用于:

    若所述数据块的比特长度为512位时,将所述待传输数据对512求余,得到计算结果;

    判断所述计算结果中的商值,将所述待传输数据划分为数量等于商值的原始数据段、1个原始数据剩余块。

    在本实施例中,所述计算模块403包括:

    第一计算单元4031,用于根据所述消息摘要算法,计算所述原始数据组中的每个数据段的第二校验子值;

    第二计算单元4032,用于基于每个数据段的校验值,计算出所述原始数据组的第二校验值和。

    在本实施例中,所述比较模块404包括:

    比较单元4041,用于比较所述第一校验值中的第一校验和与所述第二校验和进行比对;

    输出单元4042,用于在比对第一校验和与所述第二校验和不一致时,将所述第二校验子值与所述第一校验值中的第一校验子值进行比较,并输出比较结果。

    上面图4和图5从模块化功能实体的角度对本发明实施例中的数据传输装置进行详细描述,下面从硬件处理的角度对本发明实施例中数据传输设备进行详细描述。

    图6是本发明实施例提供的一种数据传输设备的结构示意图,该数据传输设备700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)710(例如,一个或一个以上处理器)和存储器720,一个或一个以上存储应用程序733或数据732的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器720和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据传输设备700中的一系列指令操作。更进一步地,处理器710可以设置为与存储介质730通信,在数据传输设备700上执行存储介质730中的一系列指令操作,以实现上述数据传输方法的步骤。

    数据传输设备700还可以包括一个或一个以上电源740,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口760,和/或,一个或一个以上操作系统731,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图6示出的数据传输设备结构并不构成对本申请提供的数据传输设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

    本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行上述各实施例提供的数据传输方法的步骤。

    所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

    本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

    所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

    以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。


    技术特征:

    1.一种数据传输方法,其特征在于,所述数据传输方法包括:

    从业务系统中的服务器中读取待校验的数据传输文件,其中,所述数据传输文件中包括原始数据文件和第一校验值;

    提取所述数据传输文件中的原始数据文件,并调用预设的数据封装规则,从所述原始数据文件中提取原始数据组;

    根据消息摘要算法计算所述原始数据组的第二校验值;

    将所述第一校验值与所述第二校验值进行比较,得到比较结果;

    若所述比较结果为不一致,则确定所述数据传输文件不完整且所述原始数据文件不一致,并通知输出端重新发送数据。

    2.根据权利要求1所述的数据传输方法,其特征在于,在所述从业务系统中的服务器中读取待校验的数据传输文件之前,还包括:

    获取所述业务系统中的待传输数据;

    将所述待传输数据,按照所述数据封装规则进行分组进行分组封装,得到原始数据文件,并通过所述消息摘要算法,计算所述原始数据文件中数据的第一校验值;

    将所述第一校验值和数据传输文件,合成数据传输文件,并发送至所述服务器进行存储。

    3.根据权利要求2所述的数据传输方法,其特征在于,所述将所述待传输数据,按照所述数据封装规则进行分组进行分组封装,得到原始数据文件包括:

    根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段,其中,所述若干个数据段包括n个长度等于所述比特长度的原始数据段、1个原始数据剩余块,n为自然数;

    根据所述数据封装规则中的数据填充算法,对所述原始数据剩余块进行扩充,得到长度等于所述比特长度的扩充数据段;

    将所述若干个数据段平均分为m组,并在m组原始数据组中的每个数据段之后,增加数据长度记录字段,得到完整的数据块;

    将数据块进行分组级联,得到所述原始数据文件。

    4.根据权利要求3所述的数据传输方法,其特征在于,所述通过所述消息摘要算法计算所述原始数据文件中数据的第一校验值包括:

    提取所述数据封装规则中的设置的消息摘要算法所采用的端序类型;

    判断所述端序类型与当前使用的消息摘要算法中的端序类型是否相同;

    若相同,则直接计算m个原始数据组的校验值之和,得到第一校验值;

    若不相同,则将m个原始数组按32位字节进行字节序倒转,并计算字节序待转后的校验值之验和,得到第一校验值。

    5.根据权利要求4所述的数据传输方法,其特征在于,若所述数据块的比特长度为512位时,所述根据所述数据封装规则中规定的数据块的比特长度,将所述待传输数据划分为若干个数据段包括:

    将所述待传输数据对512求余,得到计算结果;

    判断所述计算结果中的商值,将所述待传输数据划分为数量等于商值的原始数据段、1个原始数据剩余块。

    6.根据权利要求5所述的数据传输方法,其特征在于,所述根据消息摘要算法计算所述原始数据组的第二校验值包括:

    根据所述消息摘要算法,计算所述原始数据组中的每个数据段的第二校验子值;

    基于每个数据段的校验值,计算出所述原始数据组的第二校验值和。

    7.根据权利要求6所述的数据传输方法,其特征在于,所述将所述第一校验值与所述第二校验值进行比较,得到比较结果包括:

    比较所述第一校验值中的第一校验和与所述第二校验和进行比对;

    若比对不一致,则将所述第二校验子值与所述第一校验值中的第一校验子值进行比较,并输出比较结果。

    8.一种数据传输装置,其特征在于,所述数据传输装置包括:

    读取模块,用于从业务系统中的服务器中读取待校验的数据传输文件,其中所述数据传输文件中包括原始数据文件和第一校验值;

    提取模块,用于提取所述数据传输文件中的原始数据文件,并调用预设的数据封装规则,从所述原始数据文件中提取原始数据组;

    计算模块,用于根据消息摘要算法计算所述原始数据组的第二校验值;

    比较模块,用于将所述第一校验值与所述第二校验值进行比较,得到比较结果;

    通知模块,用于在所述比较结果为不一致时,确定所述数据传输文件不完整且所述原始数据文件不一致,并通知输出端重新发送数据。

    9.一种数据传输设备,其特征在于,所述数据传输设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;

    所述至少一个处理器调用所述存储器中的所述指令,以使得所述数据传输设备执行如权利要求1-7中任一项所述的数据传输方法。

    10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的数据传输方法。

    技术总结
    本发明涉及网络安全技术领域,公开了一种数据传输方法、装置、设备及存储介质。该方法利用MD5算法来对待传输的业务数据进行加密校验,并且在利用MD5算法进行加密的过程中,根据设定的与MD5算法对应的数据填充规则将业务数据转换成MD5文件,然后对MD5文件和业务数据传输出去,而接收端在接收到业务数据后,提取MD5文件中的数据进行加密计算,得到校验值,将校验值与原来的加密值进行比较,从而实现了数据的完整性和一致性的比较,提高了数据的安全性和避免数据的缺失,减少了生成问题的发生。此外,本发明还涉及区块链技术,业务数据和MD5文件可存储于区块链中。

    技术研发人员:袁丹
    受保护的技术使用者:平安普惠企业管理有限公司
    技术研发日:2020.11.17
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-7512.html

    最新回复(0)