CN110503434B - 基于哈希算法的数据验证方法、装置、设备和存储介质 - Google Patents
基于哈希算法的数据验证方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110503434B CN110503434B CN201910635310.3A CN201910635310A CN110503434B CN 110503434 B CN110503434 B CN 110503434B CN 201910635310 A CN201910635310 A CN 201910635310A CN 110503434 B CN110503434 B CN 110503434B
- Authority
- CN
- China
- Prior art keywords
- data
- target file
- hash value
- bit
- file data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及区块链技术领域,提供了基于哈希算法的数据验证方法、装置、设备和存储介质,方法包括:获取目标文件数据;采用预设的哈希算法对目标文件数据进行哈希运算,得到校验哈希值;调取与目标文件数据对应的参考哈希值;若校验哈希值与参考哈希值相同,则判定目标文件数据未被篡改;若校验哈希值与参考哈希值不相同,则判定目标文件数据被篡改。通过第三方存证机构的哈希算法验证识别目标文件数据的真实性和有效性,赋予目标文件数据的法律证明效力,提高了目标文件数据验证的效率和可靠性,且通过哈希值对目标文件数据进行保全,有效的防止目标文件数据的泄露。
Description
技术领域
本申请涉及数据存证领域,尤其涉及基于哈希算法的数据验证方法、装置、设备和存储介质。
背景技术
随着因特网的迅速发展,电子商务在各国已经十分普遍,它使传统的交易形式发生了巨大改变。电子合同作为电子商务运转的重要基础和手段被人们所广泛运用,这极大地推动了数字经济的发展。目前,个人、企业以及政府处理日常事务和其他商业活动已经离不开电子合同了。
在电子合同领域中,很多情况下,还有一些与电子合同相关的原始文件需要保存,如证据,当下对于这些原始文件一般与电子合同分开存储,当验证这些原始文件是否被篡改时,需要单独校验原始文件本身,存在复杂度较高、耗时较长的缺陷。
发明内容
本申请提出了一种基于哈希算法的数据验证方法、装置、设备和存储介质,能够解决原始文件的真实性验证复杂的问题。
一种基于哈希算法的数据验证方法,包括:获取目标文件数据;将所述目标文件数据进行二进制转化,得到原始二进制数据;在所述原始二进制数据的末尾添加n位的填充数据,得到补位二进制数据;所述补位二进制数据的位数是512的整数倍;将所述补位二进制数据平均分割成多组512比特的子二进制数据;依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值;调取与所述目标文件数据对应的参考哈希值;若所述校验哈希值与所述参考哈希值相同,则判定所述目标文件数据未被篡改;若所述校验哈希值与所述参考哈希值不相同,则判定所述目标文件数据被篡改。
可选地,所述依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值,包括:分配4个32位运算变量A1、A2、A3、A4,分别对运算变量A1、A2、A3、A4进行初始化;利用初始化的运算变量A1、A2、A3、A4以及预设的循环算法依次对每组子二进制数据进行循环运算,分别得到运算变量A1、A2、A3、A4的最终值;将运算变量A1、A2、A3、A4的最终值进行串接,以生成128位的所述校验哈希值;所述循环算法包含四轮运算,第一轮运算有20次第一赋值运算,每次第一赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F1=(A2&A3)||(~A2&A4);
A1,A2,A3,A4<-(A4+F1+R5(A1)+Wt+Kt1),A1,R30(A1),A3;
第二轮运算有20次第二赋值运算,每次第二赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F2=A2⊕A3⊕A4;
A1,A2,A3,A4<-(A4+F2+R5(A1)+Wt+Kt2),A1,R30(A1),A3;
第三轮运算有20次第三赋值运算,每次第三赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F3=(A2&A3)||(A2&A4)||(A3&A4);
A1,A2,A3,A4<-(A4+F3+R5(A1)+Wt+Kt3),A1,R30(A1),A3;
第四轮运算有20次第四赋值运算,每次第四赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F4=(A2 NAND A3)⊕A4;
A1,A2,A3,A4<-(A5+F4+R5(A1)+Wt+Kt4),A1,R30(A2),A3;
其中,Wt表示第t个所述子二进制数据中待处理的32位字;Rk(A1)表示将循环变量A1循环左移k位;Kt1、Kt2、Kt3、Kt4表示4个不同的用于加法的常量;“+”为取模232加法运算符;“&”为按位与运算符;“||”为按位或运算符;“~”为按位取反运算符;“⊕”为按位异或运算符;“NAND”为按位与非运算符;“<-”表示赋值运算。
可选地,所述填充数据的格式为:起始标志字段+无效字段+位数记录字段;所述起始标志字段用于标识所述填充数据在所述补位二进制数据中的位置;所述无效字段为所述填充数据的无效位;所述无效字段用逻辑0进行填充;所述位数记录字段用于记录所述二进制数据的原始位数。
可选地,所述n的表达式为:
c=a%512
其中,a表示所述原始二进制数据的原始位数,d为所述起始标志字段和所述位数记录字段的位数和,%为求余运算符,a、d分别为正整数。
可选地,运算变量A1的初始值为0x67452301,运算变量A2的初始值为0xefcdab89,运算变量A3的初始值为0x98badcfe,运算变量A4的初始值为0x10325476。
可选地,在所述获取目标文件数据之前,所述方法还包括:接收数据提供方传送的原目标文件数据,以及获取接收所述原目标文件数据时的时间戳;采用所述哈希算法对所述原目标文件数据进行哈希运算,得到所述参考哈希值;生成与所述原目标文件数据以及所述时间戳相对应的签名文件;所述签名文件包含数字签名、文件标识以及所述时间戳;将所述签名文件以及所述时间戳回传至数据提供方,以及将所述参考哈希值和所述签名文件进行关联存储。
基于相同的技术构思,本申请还提供了一种基于哈希算法的数据验证装置,包括:
收发模块,用于获取目标文件数据。
处理模块,用于将所述获取模块所获取的所述目标文件数据进行二进制转化,得到原始二进制数据;在所述原始二进制数据的末尾添加n位的填充数据,得到补位二进制数据;所述补位二进制数据的位数是512的整数倍;将所述补位二进制数据平均分割成多组512比特的子二进制数据;依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值;调取与所述目标文件数据对应的参考哈希值;若所述校验哈希值与所述参考哈希值相同,则判定所述目标文件数据未被篡改;若所述校验哈希值与所述参考哈希值不相同,则判定所述目标文件数据被篡改。
可选地,所述处理模块具体用于分配4个32位运算变量A1、A2、A3、A4,分别对运算变量A1、A2、A3、A4进行初始化;利用初始化的运算变量A1、A2、A3、A4以及预设的循环算法依次对每组子二进制数据进行循环运算,分别得到运算变量A1、A2、A3、A4的最终值;将运算变量A1、A2、A3、A4的最终值进行串接,以生成128位的所述校验哈希值;所述循环算法包含四轮运算,第一轮运算有20次第一赋值运算,每次第一赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F1=(A2&A3)||(~A2&A4);
A1,A2,A3,A4<-(A4+F1+R5(A1)+Wt+Kt1),A1,R30(A1),A3;
第二轮运算有20次第二赋值运算,每次第二赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F2=A2⊕A3⊕A4;
A1,A2,A3,A4<-(A4+F2+R5(A1)+Wt+Kt2),A1,R30(A1),A3;
第三轮运算有20次第三赋值运算,每次第三赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F3=(A2&A3)||(A2&A4)||(A3&A4);
A1,A2,A3,A4<-(A4+F3+R5(A1)+Wt+Kt3),A1,R30(A1),A3;
第四轮运算有20次第四赋值运算,每次第四赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F4=(A2 NAND A3)⊕A4;
A1,A2,A3,A4<-(A5+F4+R5(A1)+Wt+Kt4),A1,R30(A2),A3;
其中,Wt表示第t个所述子二进制数据中待处理的32位字;Rk(A1)表示将循环变量A1循环左移k位;Kt1、Kt2、Kt3、Kt4表示4个不同的用于加法的常量;“+”为取模232加法运算符;“&”为按位与运算符;“||”为按位或运算符;“~”为按位取反运算符;“⊕”为按位异或运算符;“NAND”为按位与非运算符;“<-”表示赋值运算。
可选地,所述填充数据的格式为:起始标志字段+无效字段+位数记录字段。所述起始标志字段用于标识所述填充数据在所述补位二进制数据中的位置;所述无效字段为所述填充数据的无效位;所述无效字段用逻辑0进行填充;所述位数记录字段用于记录所述二进制数据的原始位数。
可选地,所述n的表达式为:
c=a%512
其中,a表示所述原始二进制数据的原始位数,d为所述起始标志字段和所述位数记录字段的位数和,%为求余运算符,a、d分别为正整数。
可选地,运算变量A1的初始值为0x67452301,运算变量A2的初始值为0xefcdab89,运算变量A3的初始值为0x98badcfe,运算变量A4的初始值为0x10325476。
可选地,所述处理模块还用于接收数据提供方传送的原目标文件数据,以及获取接收所述原目标文件数据时的时间戳;采用所述哈希算法对所述原目标文件数据进行哈希运算,得到所述参考哈希值;生成与所述原目标文件数据以及所述时间戳相对应的签名文件;所述签名文件包含数字签名、文件标识以及所述时间戳;将所述签名文件以及所述时间戳回传至数据提供方,以及将所述参考哈希值和所述签名文件进行关联存储。
基于相同的技术构思,本申请还提供了一种计算机设备,包括输入输出单元、存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如的方法中的步骤。
基于相同的技术构思,本申请还提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如的方法中的步骤。
本申请的有益效果:通过第三方存证机构的哈希算法验证识别目标文件数据的真实性和有效性,赋予目标文件数据的法律证明效力,提高了目标文件数据验证的效率和可靠性,且通过哈希值对目标文件数据进行保全,有效的防止目标文件数据的泄露。
附图说明
图1为本申请中基于哈希算法的数据验证方法的流程示意图。
图2为本申请中基于哈希算法的数据验证装置的示意图。
图3为本申请实施例中计算机设备的结构示意图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可以包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、程序、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、程序、步骤、操作、元件、组件和/或它们的组。
图1为本申请一些实施方式中一种基于哈希算法的数据验证方法的流程图,该方法由第三方存证平台的数据验证设备执行,用于验证校验请求方所发送的目标文件数据的真实性以及有效性,如图1所示,可以包括下步骤S1-S3:
步骤S1、获取目标文件数据;采用预设的哈希算法对所述目标文件数据进行哈希运算,得到校验哈希值。
第三方存证平台的数据验证设备从校验请求方获取目标文件数据,并利用哈希算法生成与所述目标文件数据对应的校验哈希值。校验请求方的目标文件数据由数据提供方提供。校验请求方从数据提供方获取目标文件数据,并将获取的目标文件数据发送至第三方存证平台,由第三方存证平台校验该目标文件数据是否被篡改。
例如,数据提供方为银行,校验请求方为仲裁机构,目标文件包括银行与借款人签订的借款合同、借款人的身份证明文件以及借款人的个人信用证明文件等。银行与借款人签订借款合同时,将目标文件数据发送至第三方存证平台,第三方存证平台根据目标文件数据生成参考哈希值,并对参考哈希值进行保存。若借款人出现违约行为,拒绝向银行还款,银行对借款人向仲裁机构提起仲裁,银行需要向仲裁机构提交目标文件数据,仲裁机构将获取的目标文件数据发送至第三方存证平台。第三方存证平台获取目标文件数据后,利用哈希算法生成与所述目标文件数据对应的校验哈希值,第三方存证平台根据校验哈希值识别目标文件数据是否被篡改,并将识别结果反馈至仲裁机构。
一些实施例中,目标文件数据包括单证数据、电子签名图像数据、人脸识别信息数据。
单证即为凭证,例如征信授权书、合同、单据以及证书等均可作为单证。
一些实施例中,步骤S1中的所述采用预设的哈希算法对所述目标文件数据进行哈希运算,得到校验哈希值,具体包括以下步骤S11-S14:
S11、将所述目标文件数据进行二进制转化,得到原始二进制数据。
计算机以字节为单位对数据进行存储,每个字节有8位二进制数。
S12、在所述原始二进制数据的末尾添加n位的填充数据,得到补位二进制数据。
所述补位二进制数据的位数是512的整数倍。
所述填充数据的格式为:起始标志字段+无效字段+位数记录字段。
所述起始标志字段用于标识所述填充数据在所述补位二进制数据中的位置。
所述无效字段为所述填充数据的无效位;所述无效字段用逻辑0进行填充。
所述位数记录字段用于记录所述二进制数据的原始位数。
所述起始标志字段以及所述位数记录字段的位数分别固定,所述无效字段的位数由n的大小决定。
一些实施例中,所述n的表达式为:
c=a%512
其中,a表示所述原始二进制数据的原始位数,d为所述起始标志字段和所述位数记录字段的位数和,%为求余运算符,a、d分别为正整数。
S13、将所述补位二进制数据平均分割成多组的子二进制数据。
每组子二进制数据的位数为512。
根据前述参数可知,所述所述补位二进制数据经过平均分割后,得到(a+n)/512组子二进制数据。
S14、依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值。
一些实施例中,步骤S14包括以下步骤S141-S143:
S141、分配4个32位的运算变量A1、A2、A3、A4,分别对运算变量A1、A2、A3、A4进行初始化。
各运算变量的初始化值分别为:A1=0x67452301,A2=0xefcdab89,A3=0x98badcfe,A4=0x10325476;其中,“0x”为十六进制标识符,每个十六进制的运算变量有8位,转化二进制后即为8×4=32位。
S142、利用初始化的运算变量A1、A2、A3、A4以及预设的循环算法依次对每组子二进制数据进行循环运算,分别得到运算变量A1、A2、A3、A4的最终值;将运算变量A1、A2、A3、A4的最终值进行串接,以生成128位的所述校验哈希值。
具体地,所述循环算法包含四轮运算,第一轮运算有20次第一赋值运算,每次第一赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F1=(A2&A3)||(~A2&A4);
A1,A2,A3,A4<-(A4+F1+R5(A1)+Wt+Kt1),A1,R30(A1),A3;
第二轮运算有20次第二赋值运算,每次第二赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F2=A2⊕A3⊕A4;
A1,A2,A3,A4<-(A4+F2+R5(A1)+Wt+Kt2),A1,R30(A1),A3;
第三轮运算有20次第三赋值运算,每次第三赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F3=(A2&A3)||(A2&A4)||(A3&A4);
A1,A2,A3,A4<-(A4+F3+R5(A1)+Wt+Kt3),A1,R30(A1),A3;
第四轮运算有20次第四赋值运算,每次第四赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F4=(A2 NAND A3)⊕A4;
A1,A2,A3,A4<-(A5+F4+R5(A1)+Wt+Kt4),A1,R30(A2),A3;
其中,Wt表示第t个所述子二进制数据中待处理的32位字;Rk(A1)表示将循环变量A1循环左移k位;Kt1、Kt2、Kt3、Kt4表示4个不同的用于加法的常量;“+”为取模232加法运算符;“&”为按位与运算符;“||”为按位或运算符;“~”为按位取反运算符;“⊕”为按位异或运算符;“NAND”为按位与非运算符;“<-”表示赋值运算。
当所述循环算法依次处理完所有的子二进制数据后,将运算变量A1、A2、A3、A4的最终值进行串接,得到4×32=128位的所述校验哈希值。
步骤S2、调取与所述目标文件数据对应的参考哈希值。
数据提供方在录入用户的原始的目标文件数据时,将该目标文件数据发送至第三方存证平台,第三方存证平台利用哈希算法生成与该目标文件数据对应的参考哈希值,并对参考哈希值进行保存。可见,第三方存证平台所存储的参考哈希值是根据原始的目标文件数据计算得到的,如果该目标文件数据的内容被篡改,那么利用哈希算法所产生的哈希值将与参考哈希值不同。
第三方存证平台存储参考哈希值时,为参考哈希值设置唯一的标识,根据该标识对参考哈希值进行调取,该标识可以是企业组织机构代码或者被证明人的身份证号码等。该标识通常为目标文件数据中的信息。第三方存证平台获取校验请求方提供的目标文件数据后,从目标文件数据识别出该标识,然后根据该标识从数据库中寻找与该标识对应的参考哈希值。若无法寻找到参考哈希值,则说明该标识不正确。
一些实施例中,在步骤S1之前,该方法还包括以下步骤S01-S04:
S01、接收数据提供方传送的原目标文件数据,以及获取接收所述原目标文件数据时的时间戳。
S02、采用所述哈希算法对所述原目标文件数据进行哈希运算,得到所述参考哈希值。
第三方存证平台根据所述原目标文件数据生成所述参考哈希值,即完成了对所述原目标文件数据的存证。
S03、生成与所述原目标文件数据以及所述时间戳相对应的签名文件。
所述签名文件包含数字签名、文件标识以及所述时间戳。
所述文件标识是所述原目标文件数据的唯一标识,用于数据提供方将所述签名文件与所述原目标文件数据进行关联存储。
S04、将所述签名文件以及所述时间戳回传至数据提供方,以及将所述参考哈希值和所述签名文件进行关联存储。
一般来说,第三方是有公证职能的机构,该机构接受数据提供方委托,为原目标文件数据进行存证,并为数据提供方提供原目标文件数据的原始性签署,以证明原目标文件数据已经做过存证。
具体地,第三方存证平台记录接收原目标文件数据时的时间戳,并采用预设的签名算法生成签名文件,将签名文件以及时间戳回传至数据提供方。数据提供方所述文件标识为索引,保存所述签名文件,便于以后查找所述签名文件。而第三方存证平台通过所述文件标识将所述参考哈希值与所述签名文件相关联,并存储所述参考哈希值和所述签名文件,用以存根。
步骤S3、若所述校验哈希值与所述参考哈希值相同,则判定所述目标文件数据未被篡改;若所述校验哈希值与所述参考哈希值不相同,则判定所述目标文件数据被篡改。
第三方存证平台将所述校验哈希值与所述参考哈希值进行比较,若所述校验哈希值与所述参考哈希值相同,则判定校验请求方所得到的所述目标文件数据未被篡改,若所述校验哈希值与所述参考哈希值相同,则判定校验请求方所得到的所述目标文件数据被篡改。第三方存证平台将哈希验证结果反馈给校验请求方,校验请求方根据哈希验证结果识别所述目标文件数据的真实性。
上述实施例中,通过第三方存证机构的哈希验证识别目标文件数据的真实性和有效性,赋予目标文件数据的法律证明效力,提高了目标文件数据验证的效率和可靠性,且通过哈希值对目标文件数据进行保全,有效的防止目标文件数据的泄露。
基于相同的技术构思,本申请还提供了一种基于哈希算法的数据验证装置,如图2所示,该装置包括收发模块1和处理模块2。所述处理模块2用于控制所述收发模块1的收发操作。
所述收发模块1,用于获取目标文件数据。
所述处理模块2,用于将所述获取模块1所获取的所述目标文件数据进行二进制转化,得到原始二进制数据;在所述原始二进制数据的末尾添加n位的填充数据,得到补位二进制数据;所述补位二进制数据的位数是512的整数倍;将所述补位二进制数据平均分割成多组512比特的子二进制数据;依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值;调取与所述目标文件数据对应的参考哈希值;若所述校验哈希值与所述参考哈希值相同,则判定所述目标文件数据未被篡改;若所述校验哈希值与所述参考哈希值不相同,则判定所述目标文件数据被篡改。
一些实施方式中,所述处理模块2具体用于分配4个32位的运算变量A1、A2、A3、A4,分别对运算变量A1、A2、A3、A4进行初始化;利用初始化的运算变量A1、A2、A3、A4以及预设的循环算法依次对每组子二进制数据进行循环运算,分别得到运算变量A1、A2、A3、A4的最终值;将运算变量A1、A2、A3、A4的最终值进行串接,以生成128位的所述校验哈希值;所述循环算法包含四轮运算,第一轮运算有20次第一赋值运算,每次第一赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F1=(A2&A3)||(~A2&A4);
A1,A2,A3,A4<-(A4+F1+R5(A1)+Wt+Kt1),A1,R30(A1),A3;
第二轮运算有20次第二赋值运算,每次第二赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F2=A2⊕A3⊕A4;
A1,A2,A3,A4<-(A4+F2+R5(A1)+Wt+Kt2),A1,R30(A1),A3;
第三轮运算有20次第三赋值运算,每次第三赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F3=(A2&A3)||(A2&A4)||(A3&A4);
A1,A2,A3,A4<-(A4+F3+R5(A1)+Wt+Kt3),A1,R30(A1),A3;
第四轮运算有20次第四赋值运算,每次第四赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F4=(A2 NAND A3)⊕A4;
A1,A2,A3,A4<-(A5+F4+R5(A1)+Wt+Kt4),A1,R30(A2),A3;
其中,Wt表示第t个所述子二进制数据中待处理的32位字;Rk(A1)表示将循环变量A1循环左移k位;Kt1、Kt2、Kt3、Kt4表示4个不同的用于加法的常量;“+”为取模232加法运算符;“&”为按位与运算符;“||”为按位或运算符;“~”为按位取反运算符;“⊕”为按位异或运算符;“NAND”为按位与非运算符;“<-”表示赋值运算。
所述填充数据的格式为:起始标志字段+无效字段+位数记录字段。所述起始标志字段用于标识所述填充数据在所述补位二进制数据中的位置;所述无效字段为所述填充数据的无效位;所述无效字段用逻辑0进行填充;所述位数记录字段用于记录所述二进制数据的原始位数。
一些实施方式中,所述n的表达式为:
c=a%512
其中,a表示所述原始二进制数据的原始位数,d为所述起始标志字段和所述位数记录字段的位数和,%为求余运算符,a、d分别为正整数。
一些实施方式中,运算变量A1的初始值为0x67452301,运算变量A2的初始值为0xefcdab89,运算变量A3的初始值为0x98badcfe,运算变量A4的初始值为0x10325476。
一些实施方式中,所述处理模块2还用于接收数据提供方传送的原目标文件数据,以及获取接收所述原目标文件数据时的时间戳;采用所述哈希算法对所述原目标文件数据进行哈希运算,得到所述参考哈希值;生成与所述原目标文件数据以及所述时间戳相对应的签名文件;所述签名文件包含数字签名、文件标识以及所述时间戳;将所述签名文件以及所述时间戳回传至数据提供方,以及将所述参考哈希值和所述签名文件进行关联存储。
上述实施例中,通过第三方存证机构的哈希验证识别目标文件数据的真实性和有效性,赋予目标文件数据的法律证明效力,提高了目标文件数据验证的效率和可靠性,且通过哈希值对目标文件数据进行保全,有效的防止目标文件数据的泄露。
基于相同的技术构思,本申请还提供了一种计算机设备,如图3所示,该计算机设备包括输入输出单元31、处理器32和存储器33,所述存储器33中存储有计算机可读指令,所述计算机可读指令被所述处理器32执行时,使得所述处理器执行上述各实施方式中的所述的基于哈希算法的数据验证方法的步骤。
图2中所示的收发模块1对应的实体设备为图3所示的输入输出单元31,该输入输出单元31能够实现收发模块1部分或全部的功能,或者实现与收发模块1相同或相似的功能。
图2中所示的处理模块2对应的实体设备为图3所示的处理器32,该处理器32能够实现处理模块2部分或全部的功能,或者实现与处理模块2相同或相似的功能。
基于相同的技术构思,本申请还提供了一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施方式中的所述的基于哈希算法的数据验证方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本申请的保护之内。
Claims (8)
1.一种基于哈希算法的数据验证方法,其特征在于,包括:
获取目标文件数据;
将所述目标文件数据进行二进制转化,得到原始二进制数据;在所述原始二进制数据的末尾添加n位的填充数据,得到补位二进制数据;所述补位二进制数据的位数是512的整数倍;将所述补位二进制数据平均分割成多组512比特的子二进制数据;依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值;
调取与所述目标文件数据对应的参考哈希值;
若所述校验哈希值与所述参考哈希值相同,则判定所述目标文件数据未被篡改;若所述校验哈希值与所述参考哈希值不相同,则判定所述目标文件数据被篡改;
所述依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值,包括:
分配4个32位的运算变量A1、A2、A3、A4,分别对运算变量A1、A2、A3、A4进行初始化;
利用初始化的运算变量A1、A2、A3、A4以及预设的循环算法依次对每组子二进制数据进行循环运算,分别得到运算变量A1、A2、A3、A4的最终值;将运算变量A1、A2、A3、A4的最终值进行串接,以生成128位的所述校验哈希值;所述循环算法包含四轮运算,第一轮运算有20次第一赋值运算,每次第一赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F1=(A2&A3)||(~A2&A4);
A1,A2,A3,A4<-(A4+F1+R5(A1)+Wt+Kt1),A1,R30(A1),A3;
第二轮运算有20次第二赋值运算,每次第二赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F2=A2⊕A3⊕A4;
A1,A2,A3,A4<-(A4+F2+R5(A1)+Wt+Kt2),A1,R30(A1),A3;
第三轮运算有20次第三赋值运算,每次第三赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F3=(A2&A3)||(A2&A4)||(A3&A4);
A1,A2,A3,A4<-(A4+F3+R5(A1)+Wt+Kt3),A1,R30(A1),A3;
第四轮运算有20次第四赋值运算,每次第四赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F4=(A2 NAND A3)⊕A4;
A1,A2,A3,A4<-(A4+F4+R5(A1)+Wt+Kt4),A1,R30(A2),A3;
其中,Wt表示第t个所述子二进制数据中待处理的32位字;Rk(A1)表示将循环变量A1循环左移k位,Rk(A2)表示将循环变量A2循环左移k位;Kt1、Kt2、Kt3、Kt4表示4个不同的用于加法的常量;“+”为取模232加法运算符;“&”为按位与运算符;“||”为按位或运算符;“~”为按位取反运算符;“⊕”为按位异或运算符;“NAND”为按位与非运算符;“<-”表示赋值运算。
2.根据权利要求1所述的基于哈希算法的数据验证方法,其特征在于,
所述填充数据的格式为:起始标志字段+无效字段+位数记录字段;
所述起始标志字段用于标识所述填充数据在所述补位二进制数据中的位置;
所述无效字段为所述填充数据的无效位;所述无效字段用逻辑0进行填充;
所述位数记录字段用于记录所述二进制数据的原始位数。
4.根据权利要求1至3中的任一所述的基于哈希算法的数据验证方法,其特征在于,
运算变量A1的初始值为0x67452301,运算变量A2的初始值为0xefcdab89,运算变量A3的初始值为0x98badcfe,运算变量A4的初始值为0x10325476。
5.根据权利要求1所述的基于哈希算法的数据验证方法,其特征在于,
在所述获取目标文件数据之前,所述方法还包括:
接收数据提供方传送的原目标文件数据,以及获取接收所述原目标文件数据时的时间戳;
采用哈希算法对所述原目标文件数据进行哈希运算,得到所述参考哈希值;
生成与所述原目标文件数据以及所述时间戳相对应的签名文件;所述签名文件包含数字签名、文件标识以及所述时间戳;
将所述签名文件以及所述时间戳回传至数据提供方,以及将所述参考哈希值和所述签名文件进行关联存储。
6.一种基于哈希算法的数据验证装置,其特征在于,包括:
获取模块,用于获取目标文件数据;
处理模块,用于将所述获取模块所获取的所述目标文件数据进行二进制转化,得到原始二进制数据;在所述原始二进制数据的末尾添加n位的填充数据,得到补位二进制数据;所述补位二进制数据的位数是512的整数倍;将所述补位二进制数据平均分割成多组512比特的子二进制数据;依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值;调取与所述目标文件数据对应的参考哈希值;若所述校验哈希值与所述参考哈希值相同,则判定所述目标文件数据未被篡改;若所述校验哈希值与所述参考哈希值不相同,则判定所述目标文件数据被篡改;
所述依次对每组子二进制数据进行哈希运算处理,以生成校验哈希值,包括:
分配4个32位的运算变量A1、A2、A3、A4,分别对运算变量A1、A2、A3、A4进行初始化;利用初始化的运算变量A1、A2、A3、A4以及预设的循环算法依次对每组子二进制数据进行循环运算,分别得到运算变量A1、A2、A3、A4的最终值;将运算变量A1、A2、A3、A4的最终值进行串接,以生成128位的所述校验哈希值;所述循环算法包含四轮运算,第一轮运算有20次第一赋值运算,每次第一赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F1=(A2&A3)||(~A2&A4);
A1,A2,A3,A4<-(A4+F1+R5(A1)+Wt+Kt1),A1,R30(A1),A3;
第二轮运算有20次第二赋值运算,每次第二赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F2=A2⊕A3⊕A4;
A1,A2,A3,A4<-(A4+F2+R5(A1)+Wt+Kt2),A1,R30(A1),A3;
第三轮运算有20次第三赋值运算,每次第三赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F3=(A2&A3)||(A2&A4)||(A3&A4);
A1,A2,A3,A4<-(A4+F3+R5(A1)+Wt+Kt3),A1,R30(A1),A3;
第四轮运算有20次第四赋值运算,每次第四赋值运算为:
A1=A2+A3;A2=A3+A4;A3=A4+A1;A4=A1+A2;
F4=(A2 NAND A3)⊕A4;
A1,A2,A3,A4<-(A4+F4+R5(A1)+Wt+Kt4),A1,R30(A2),A3;
其中,Wt表示第t个所述子二进制数据中待处理的32位字;Rk(A1)表示将循环变量A1循环左移k位,Rk(A2)表示将循环变量A2循环左移k位;Kt1、Kt2、Kt3、Kt4表示4个不同的用于加法的常量;“+”为取模232加法运算符;“&”为按位与运算符;“||”为按位或运算符;“~”为按位取反运算符;“⊕”为按位异或运算符;“NAND”为按位与非运算符;“<-”表示赋值运算。
7.一种计算机设备,其特征在于,包括输入输出单元、存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至5中的任一所述的基于哈希算法的数据验证方法中的步骤。
8.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至5中的任一所述的基于哈希算法的数据验证方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910635310.3A CN110503434B (zh) | 2019-07-15 | 2019-07-15 | 基于哈希算法的数据验证方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910635310.3A CN110503434B (zh) | 2019-07-15 | 2019-07-15 | 基于哈希算法的数据验证方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110503434A CN110503434A (zh) | 2019-11-26 |
CN110503434B true CN110503434B (zh) | 2023-04-07 |
Family
ID=68586127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910635310.3A Active CN110503434B (zh) | 2019-07-15 | 2019-07-15 | 基于哈希算法的数据验证方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110503434B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111125781B (zh) * | 2019-12-24 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 一种文件签名方法、装置和文件签名验证方法、装置 |
CN111553691A (zh) * | 2020-05-21 | 2020-08-18 | 陈议尊 | 一种纯去中心化区块链方法及*** |
CN111737534B (zh) * | 2020-06-19 | 2024-04-09 | 北京百度网讯科技有限公司 | 文件处理方法、装置及设备 |
CN111885125A (zh) * | 2020-07-07 | 2020-11-03 | 普华云创科技(北京)有限公司 | 端对端网络的数据传输方法、***及计算机可读存储介质 |
WO2022120572A1 (zh) * | 2020-12-08 | 2022-06-16 | 深圳欣锐科技股份有限公司 | 一种篡改验证方法及装置 |
CN115879097A (zh) * | 2021-08-26 | 2023-03-31 | 华为技术有限公司 | 安全启动校验的方法及电子设备 |
CN113873482A (zh) * | 2021-08-27 | 2021-12-31 | 青岛中科英泰商用***股份有限公司 | 测试Android***对蓝牙模块兼容性的方法、***、设备及介质 |
CN114124357B (zh) * | 2021-11-24 | 2024-01-30 | 中国银行股份有限公司 | 基于傅里叶级数的密文生成方法、服务器、介质及装置 |
CN114579521B (zh) * | 2022-05-05 | 2022-08-05 | 深圳市元芯信息科技有限公司 | 电子数据存证方法、***、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872338A (zh) * | 2010-06-04 | 2010-10-27 | 杭州电子科技大学 | 一种改进的sha-1哈希算法 |
CN107608769A (zh) * | 2017-09-13 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN107871063A (zh) * | 2017-11-16 | 2018-04-03 | 王磊 | 防篡改的录音录像数字签名方法、装置及存储介质 |
CN109064120A (zh) * | 2018-07-10 | 2018-12-21 | 马上游科技股份有限公司 | 基于区域链的旅游电子合同数字存证***及存证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10554753B2 (en) * | 2017-07-06 | 2020-02-04 | Acronis International Gmbh | System and method for service level agreement based data storage and verification |
-
2019
- 2019-07-15 CN CN201910635310.3A patent/CN110503434B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872338A (zh) * | 2010-06-04 | 2010-10-27 | 杭州电子科技大学 | 一种改进的sha-1哈希算法 |
CN107608769A (zh) * | 2017-09-13 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN107871063A (zh) * | 2017-11-16 | 2018-04-03 | 王磊 | 防篡改的录音录像数字签名方法、装置及存储介质 |
CN109064120A (zh) * | 2018-07-10 | 2018-12-21 | 马上游科技股份有限公司 | 基于区域链的旅游电子合同数字存证***及存证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110503434A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110503434B (zh) | 基于哈希算法的数据验证方法、装置、设备和存储介质 | |
US11544487B2 (en) | Large data transfer using visual codes with feedback confirmation | |
US11263415B2 (en) | Transferring data files using a series of visual codes | |
CN111859348B (zh) | 一种基于用户识别模块及区块链技术的身份认证方法及装置 | |
CN107342867B (zh) | 签名验签方法和装置 | |
CN109741056B (zh) | 一种电子凭证上传的方法及装置 | |
KR100346084B1 (ko) | 검증기에의해적어도하나의프로버를검증하는방법 | |
US11227037B2 (en) | Computer system, verification method of confidential information, and computer | |
CN109493054B (zh) | 多链信息管理方法、装置、存储介质和区块链身份解析器 | |
US11568085B2 (en) | Systems and methods for tokenization to support pseudonymization of sensitive data | |
CN112118100B (zh) | 改进的可链接环签名方法、验证方法、装置、电子设备及介质 | |
CN114329527A (zh) | 交集数据获取方法、设备和*** | |
US20210334809A1 (en) | Transaction method and apparatus based on blind signature | |
CN110598433A (zh) | 基于区块链的防伪信息处理方法、装置 | |
CN111311172A (zh) | 电子签约的方法、***和存储介质 | |
CN115118433A (zh) | 客户授权方法及装置、隐私保护集合交集计算方法及装置 | |
CN111641604B (zh) | 基于网银证书的签章方法及基于网银证书的签章*** | |
CN111539728B (zh) | 基于计算机软件实现匿名化身份验证的方法 | |
CN114640463A (zh) | 一种数字签名方法、计算机设备及介质 | |
CN113987446A (zh) | 一种认证方法及装置 | |
CN115344893B (zh) | 基于文字特征识别的交易方法、装置及设备 | |
US20220391327A1 (en) | Methods for enrolling data in order to verify the authenticity of a security datum or for verifying the authenticity of a security datum | |
TW201842475A (zh) | 提供包含QR code之繳費資訊之裝置及方法、記錄媒體及電腦程式產品 | |
CN116074012A (zh) | 一种消息摘要生成方法、装置、计算机设备及存储介质 | |
CN116680736A (zh) | 基于数据混淆的匿踪查询***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |