CN112016134B - 一种验证文件完整性的方法及装置 - Google Patents
一种验证文件完整性的方法及装置 Download PDFInfo
- Publication number
- CN112016134B CN112016134B CN202010903783.XA CN202010903783A CN112016134B CN 112016134 B CN112016134 B CN 112016134B CN 202010903783 A CN202010903783 A CN 202010903783A CN 112016134 B CN112016134 B CN 112016134B
- Authority
- CN
- China
- Prior art keywords
- file
- data block
- hash
- signature
- verified
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种验证文件完整性的方法及装置,用于验证第二设备上存储的待验证文件的完整性。第一设备可以先根据第一算法和第一数据块集合计算第一签名,然后向第二设备发送验证请求。第二设备可以根查询对应的第二数据块集合。第二设备可以根据第一算法和第二数据块集合计算第二签名,并将第二签名发送给第一设备。第一设备可以比较第一签名和第二签名是否匹配。若匹配,则确定第二设备存储的待验证文件完整。这样,第一设备和第二设备分别计算两个签名,相当于分别从第一设备和第二设备存储的文件中提取关键信息。如此,无需比较整个文件即可验证第二设备存储的文件的完整性,简化了验证流程,提升了验证速度,实现了文件完整性的快速验证。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种验证文件完整性的方法及装置。
背景技术
随着云技术的发展,云存储服务得到了广泛的应用。使用云存储服务的用户可以将终端设备中存储的数据上传至云端服务器,由云端服务器进行数据的存储。在用户需要使用数据时再从服务器中下载数据。如此,可以节省终端设备的本地存储空间,还方便了数据的共享。
但是,由于数据存储在云端服务器,用户无法对数据的状态进行监控,相当于数据脱离了用户的控制。如果云端服务器出现了故障,可能导致用户存储在云端的数据遭到损坏,丢失用户的重要信息。
为了解决这一问题,目前可以对云端的数据进行定期检查。但是现有的检查方法需要对全部数据进行检查。当数据量较大时存在检查耗时较多且需要占用大量计算资源的问题。
发明内容
有鉴于此,本申请实施例提供了一种验证文件完整性的方法及装置,旨在简化验证文件完整性的过程。
一种验证文件完整性的方法,所述方法应用于第一设备,包括:
利用第一算法,所述第一设备根据第一数据块集合计算第一签名,所述第一数据块集合包括至少一个第一数据块,所述第一数据块集合是对第一设备存储的待验证文件进行分割得到的;
所述第一设备向所述第二设备发送验证请求,所述验证请求包括待验证文件的文件标识;
所述第一设备接收所述第二设备发送的第二签名,所述第二签名是第二设备利用所述第一算法根据第二数据块集合计算得到的,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
判断所述第一签名和第二签名是否匹配;若匹配,确定所述第二设备存储的待验证文件完整。
可选地,所述第一设备根据第一数据块集合计算第一签名包括:
所述第一设备获取所述第一数据块集合中至少一个第一数据块;
所述第一设备计算所述至少一个第一数据块中每个第一数据块的哈希值;
所述第一设备按照所述第一数据块在待验证文件中的顺序,对所述第一数据块的哈希值进行排序,得到第一哈希序列;
所述第一设备根据所述第一哈希序列计算第一签名。
可选地,所述第一设备根据所述第一哈希序列计算第一签名包括:
所述第一设备计算所述第一哈希序列的哈希值,得到所述第一签名。
可选地,所述第一设备根据所述第一哈希序列计算第一签名包括:
所述第一设备根据第一哈希序列确定第二哈希序列,所述第一哈希序列包括M个哈希值,所述第二哈希序列包括N个哈希值,所述N大于或等于M;
所述第一设备遍历所述第二哈希序列,以n个哈希值为单位按序从所述第二哈希序列中提取x个第二哈希子序列,所述x为N和n的比值;
所述第一设备计算所述x个第二哈希子序列中每个第二哈希子序列的哈希值;
所述第一设备根据第二哈希子序列对应的第一数据块在待验证文件中的顺序,对所述第二哈希子序列的哈希值进行排序,得到第三哈希序列;
所述第一设备根据所述第三哈希序列计算第一签名。
一种验证文件完整性的方法,所述方法应用于第二设备,包括:
所述第二设备接收第一设备发送的验证请求,所述验证请求包括待验证文件的文件标识;
所述第二设备根据所述待验证文件的文件标识,确定第二数据块集合,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
利用第一算法,第二设备根据所述第二数据块集合计算第二签名;
所述第二设备向第一设备发送所述第二签名,以便第一设备在所述第二签名和第一签名匹配的情况下确定所述第二设备存储的待验证文件完整,所述第一签名是第一设备利用所述第一算法根据第一数据块集合计算得到的,所述第一数据块集合包括至少一个第一数据块,所述第一数据块是对第一设备存储的待验证文件进行分割得到的。
可选地,所述第二设备根据所述第二数据块集合计算第二签名包括:
所述第二设备获取所述第二数据块集合中至少一个第二数据块;
所述第二设备计算所述至少一个第二数据块中每个第二数据块的哈希值;
所述第二设备按照所述第二数据块在待验证文件中的顺序,对所述第二数据块的哈希值进行排序,得到第四哈希序列;
所述第二设备根据所述第四哈希序列计算第二签名。
可选地,所述第二设备根据所述第四哈希序列计算第二签名包括:
所述第二设备计算所述第四哈希序列的哈希值,得到所述第二签名。
可选地,所述第二设备根据所述第四哈希序列计算第二签名包括:
所述第二设备根据第四哈希序列确定第五哈希序列,所述第四哈希序列包括M个哈希值,所述第五哈希序列包括N个哈希值,所述N大于或等于M;
所述第二设备遍历所述第五哈希序列,以n个哈希值为单位按序从所述第五哈希序列中提取x个第五哈希子序列,所述x为N和n的比值;
所述第二设备计算所述x个第五哈希子序列中每个第五哈希子序列的哈希值;
所述第二设备根据第五哈希子序列对应的第一数据块在待验证文件中的顺序,对所述第五哈希子序列的哈希值进行排序,得到第六哈希序列;
所述第二设备根据所述第六哈希序列计算第二签名。
一种验证文件完整性的装置,所述装置位于第一设备,包括:
第一计算模块,用于利用第一算法,根据第一数据块集合计算第一签名,所述第一数据块集合包括至少一个第一数据块,所述第一数据块集合是对第一设备存储的待验证文件进行分割得到的;
请求发送模块,用于向所述第二设备发送验证请求,所述验证请求包括待验证文件的文件标识;
第一接收模块,用于接收所述第二设备发送的第二签名,所述第二签名是第二设备利用所述第一算法根据第二数据块集合计算得到的,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
确定模块,用于判断所述第一签名和第二签是否匹配;若匹配,确定所述第二设备存储的待验证文件完整。
一种验证文件完整性的装置,所述装置位于第二设备,包括:
第二接收模块,用于接收第一设备发送的验证请求,所述验证请求包括待验证文件的文件标识;
文件获取模块,用于根据所述待验证文件的文件标识,确定第二数据块集合,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
第二计算模块,用于利用第一算法,第二设备根据所述第二数据块集合计算第二签名;
第二发送模块,用于所述第二设备向第一设备发送所述第二签名,以便第一设备在所述第二签名和第一签名匹配的情况下确定所述第二设备存储的待验证文件完整,所述第一签名是第一设备利用所述第一算法根据第一数据块集合计算得到的,所述第一数据块集合包括至少一个第一数据块,所述第一数据块是对第一设备存储的待验证文件进行分割得到的。
本申请实施例提供了一种验证文件完整性的方法及装置,用于验证第二设备上存储的待验证文件的完整性。为了验证第二设备上存储的待验证文件的完整性,第一设备可以先根据第一算法和第一数据块集合计算第一签名,其中第一数据块集合是对第一设备存储的待验证文件进行分割得到的。第一设备可以向第二设备发送验证请求,验证请求可以包括待验证文件的文件标识。在接收到待验证文件的文件标识后,第二设备可以根据待验证文件的文件标识查询对应的第二数据块集合,第二数据块集合是对第二设备存储的待验证文件进行分割得到的。在确定第二数据块集合后,第二设备可以根据第一算法和第二数据块集合计算第二签名,并将第二签名发送给第一设备。在接收到第二签名后,第一设备可以比较第一签名和第二签名是否匹配。若匹配,则确定第二设备存储的待验证文件完整。这样,第一设备和第二设备分别计算两个签名,相当于分别从第一设备和第二设备存储的文件中提取关键信息。如此,无需比较整个文件即可验证第二设备存储的文件的完整性。相较于现有技术,简化了验证流程,提升了验证速度,实现了文件完整性的快速验证。
附图说明
为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的验证文件完整性的方法的应用场景示意图;
图2为本申请实施例提供的验证文件完整性的方法的流程示意图;
图3为本申请实施例提供的分屏显示装置的一种结构示意图;
图4为本申请实施例提供的分屏显示装置的一种结构示意图。
具体实施方式
针对云端存储的文件,目前主流的验证方法是将云端存储的文件下载到终端进行验证。当待验证文件数据量较大时,下载待验证文件需要占用较多的网络带宽,也会占用用户终端的存储空间。如果终端剩余的存储空间小于待验证文件的大小,这种验证方法无法实现。
为了解决这一问题,目前已有一些其他的验证方法。例如基于区块链技术,将待验证文件上传至区块链的区块中。或者基于加密算法,为本地和云端的待验证文件设置公钥和私钥,通过私钥和公钥的配对进行验证。但是,无论是上传区块链还是利用私钥和公钥的配对,都会占用较多的计算资源,导致文件验证速度较慢。
为了给出能够快速验证云端存储的待验证文件是否完整的方法,本申请实施例提供了一种验证文件完整性的方法。以下将从计算机或手机软件的角度对本申请优选实施例进行说明。
首先对本申请实施例提供的验证文件完整性的方法的应用场景进行介绍。参见图1,该图为本申请实施例提供的应用场景示意图。该场景包括系统10。
该系统10可以包括第一设备11和第二设备12。第一设备11和第二设备12之间通过网络直接连接,或通过其他网络设备连接。其中,第一设备可以手机、平板电脑等移动终端,也可以是计算机或服务器等设备。第二设备可以是用于提供云存储服务的服务器,也可以是计算机或手机等设备。在本申请实施例中,用户通过第一设备验证存储在第二设备中的待验证文件的完整性。为便于说明,后续以第一设备为移动终端,第二设备为服务器进行具体说明。
参见图2,图2为本申请实施例提供的分屏显示方法的流程示意图,该方法包括:
S201:第一设备计算第一签名。
在本申请实施例提供的验证文件完整性的方法中,第一设备可以通过验证签名是否匹配判断第二设备存储的待验证文件是否完整。在验证签名前,第一设备可以先利用第一算法,根据第一数据块集合计算第一签名。其中,第一数据块集合包括至少一个第一数据块,是对第一设备存储的待验证文件进行分割得到的。
具体地,在将待验证文件上传至第二设备后,第一设备可以将待验证文件按照预设规则分割为多个第一数据块,得到第一数据块集合。在得到第一数据块集合后,第一设备可以利用第一算法对第一数据块集合中多个第一数据块进行处理,得到第一签名。为了节约第一设备的存储空间,在得到第一签名后,第一设备可以删除待验证文件和/或第一数据块集合。
下面介绍根据第一设备利用第一算法根据第一数据块集合得到第一签名的具体方法。在下文的介绍中,假设第一数据块集合包括M个第一数据块,M为大于或等于1的正整数。
在计算第一签名时,第一设备可以先获取第一数据块集合中M个第一数据块,然后计算每个第一数据块的哈希值,得到M个哈希值。例如第一设备可以采用全散列算法(Secure Hash Algorithm,SHA)或MD5信息摘要算法(MD5 Message-Digest Algorithm)等算法计算每个第一数据块的哈希值,将数据量的数据块简化为长度较短的哈希值。
接着,第一设备根据M个第一数据块在待验证文件中的顺序对M个第一数据块的哈希值排序,得到第一哈希序列。例如,第一设备可以将位于待验证文件头部的第一个第一数据块的哈希值排列在第一哈希序列的第一位;将位于待验证文件头部的第二个第一数据块的哈希值排列在第一哈希序列的第二位。这样,第一哈希序列中哈希值的顺序与第一数据块在待验证文件中的顺序保持一致,使得第一哈希序列既携带有每个第一数据块的信息,还携带有第一数据块在待验证文件中的顺序信息。如此,相当于在第一哈希序列携带了待验证文件的全部信息。
在得到第一哈希序列后,第一设备可以根据第一哈希序列计算第一签名。由于第一哈希序列中携带了待验证文件的全部信息,得到的第一签名同样可以体现待验证文件的全部信息,即第一签名可以唯一标识待验证文件。
本申请实施例提供了两种根据第一哈希序列计算第一签名的方法。下面针对这两种方法做详细介绍,
方法一:
第一设备直接计算第一哈希序列的哈希值,得到第一签名。
在第一种方法中,第一设备可以将第一哈希序列转化为字符串,即将第一哈希序列中包括的至少一个哈希值首尾相连,得到一串携带了待验证文件的信息的数字或字母序列。第一设备可以对该字符串进行第二次哈希加密,得到第一签名。
方法二:
第一设备根据第一哈希序列确定第二哈希序列。其中,第二哈希序列包括N个哈希值,N为大于或等于M的正整数。
在本申请实施例中,为了便于后续操作,第一设备可以先根据第一哈希序列确定第二哈希序列。其中,第二哈希序列包括的哈希值多于第一哈希序列包括的哈希值。在一个示例中,第一设备可以在第一哈希序列的头部或尾部填0或其他数字或字母,扩充第一哈希序列的长度,从而得到第二哈希序列。
在得到第二哈希序列后,第一设备可以遍历第二哈希序列,以n个哈希值为单位,按顺序从第二哈希序列中提取x个第二哈希子序列。其中,x为N和n的比值,即x*n=N。
在本申请实施例中,第一设备可以按照预设长度n,从第二哈希序列的头部(或尾部)开始,按顺序从第二哈希序列中提取第一个到第n个第一哈希值并将之作为第一个第二哈希子序列,提取第n+1个到第n+2个第一哈希值为第二个哈希子序列。如此,第一设备可以将第二哈希子序列划分为x个第二哈希子序列。
举例说明,假设N的值为100,n的值为2,那么第一设备可以提取第二哈希序列中前两个第一哈希值作为第一个第二哈希子序列,将第二哈希序列中第三个和第四个第一哈希值作为第二个第二哈希子序列。以此类推,第一设备可以将第二哈希序列中第九十九个和第一百个第一哈希值作为第五十个第二哈希子序列,得到共50个第二哈希子序列。
在本申请实施例中,第一哈希序列的长度M取决于待验证文件的大小,第二哈希子序列的长度n可以由用户进行设置。那么第一哈希序列可能无法直接平均分割为多个第二哈希子序列。为此,第一设备可以在第一哈希序列中补充预先设定的第一哈希值,得到长度为N的第二哈希值,N能够整除n。如此,可以确保第二哈希祖列可以平均分割为等长的第二哈希子序列。
在确定x个第二哈希子序列后,第一设备可以分别计算这x个第二哈希子序列中每个第二哈希子序列的哈希值。然后根据第二哈希子序列对应的第一数据块在待验证文件中的顺序,对第二哈希子序列进行排序,得到第四哈希序列,以便第一设备根据第三哈希序列计算第一签名。
在一个示例中,第一设备可以将第一哈希值作为底层节点,n个底层节点对应一个父节点,最终收敛与一个根节点。由于哈希算法的特点,即使底层节点发生了及其微小的编号都会导致根节点发生巨大改变。如此,最终得到的根节点能够体现待验证文件的相关信息。
S202:第一设备向第二设备发送验证请求。
当需要对第二设备存储的待验证文件进行验证时,第一设备可以向第二设备发送验证请求。在本申请实施例中,验证请求可以包括待验证文件的文件标识,或者其他能够唯一标识待验证文件的其他信息。如此,根据验证请求,第二设备可以确定第一设备需要验证的待验证文件。
需要说明的是,步骤S202可以在步骤S201之后进行,也可以与步骤S201同时进行或在步骤S201之前进行,本申请对此不作限定。
S203:第二设备计算第二签名。
在接收到验证请求后,第二设备可以根据待验证请求中包括的文件标识查找待验证文件或第二数据块集合,并利用第一算法根据得让数据块集合得到第二签名。其中,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的。
本申请实施例中第二设备计算第二签名的具体方法可以参见步骤S201的描述,此处不再赘述。
S204:第二设备向第一设备发送第二签名。
在确定第二签名后,第二设备可以向第二设备发送第二签名,以便第一设备进行签名比较。
S205:第一设备判断签名是否匹配。
如果第一设备确定第一签名和第二签名相匹配,则说明第二设备中存储的待验证文件和第一设备上传的待验证文件一致,那么第一设备可以确定第二设备存储的待验证文件完整。
如果第一设备确定第一签名和第二签名不匹配,则说明第二设备中存储的待验证文件和第一设备上传的待验证文件不一致,那么第一设备可以确定第二设备存储的待验证文件不完整。
本申请实施例提供了一种验证文件完整性的方法,用于验证第二设备上存储的待验证文件的完整性。为了验证第二设备上存储的待验证文件的完整性,第一设备可以先根据第一算法和第一数据块集合计算第一签名,其中第一数据块集合是对第一设备存储的待验证文件进行分割得到的。第一设备可以向第二设备发送验证请求,验证请求可以包括待验证文件的文件标识。在接收到待验证文件的文件标识后,第二设备可以根据待验证文件的文件标识查询对应的第二数据块集合,第二数据块集合是对第二设备存储的待验证文件进行分割得到的。在确定第二数据块集合后,第二设备可以根据第一算法和第二数据块集合计算第二签名,并将第二签名发送给第一设备。在接收到第二签名后,第一设备可以比较第一签名和第二签名是否匹配。若匹配,则确定第二设备存储的待验证文件完整。这样,第一设备和第二设备分别计算两个签名,相当于分别从第一设备和第二设备存储的文件中提取关键信息。如此,无需比较整个文件即可验证第二设备存储的文件的完整性。相较于现有技术,简化了验证流程,提升了验证速度,实现了文件完整性的快速验证。
以上为本申请实施例提供验证文件完整性的方法的一些具体实现方式,基于此,本申请还提供了对应的两种装置,分别位于第一设备和第二设备。下面将从功能模块化的角度对本申请实施例提供的上述装置进行介绍。
参见图3所示的验证文件完整性的装置的结构示意图,该装置300应用于前述第一设备,包括:
第一计算模块310,用于利用第一算法,根据第一数据块集合计算第一签名,所述第一数据块集合包括至少一个第一数据块,所述第一数据块集合是对第一设备存储的待验证文件进行分割得到的。
请求发送模块320,用于向所述第二设备发送验证请求,所述验证请求包括待验证文件的文件标识。
第一接收模块330,用于接收所述第二设备发送的第二签名,所述第二签名是第二设备利用所述第一算法根据第二数据块集合计算得到的,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的。
确定模块340,用于判断所述第一签名和第二签是否匹配;若匹配,确定所述第二设备存储的待验证文件完整。
参见图4所示的验证文件完整性的装置的结构示意图,该装置400应用于前述第二设备,包括:
第二接收模块410,用于接收第一设备发送的验证请求,所述验证请求包括待验证文件的文件标识。
文件获取模块420,用于根据所述待验证文件的文件标识,确定第二数据块集合,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的。
第二计算模块430,用于利用第一算法,第二设备根据所述第二数据块集合计算第二签名。
第二发送模块440,用于所述第二设备向第一设备发送所述第二签名,以便第一设备在所述第二签名和第一签名匹配的情况下确定所述第二设备存储的待验证文件完整,所述第一签名是第一设备利用所述第一算法根据第一数据块集合计算得到的,所述第一数据块集合包括至少一个第一数据块,所述第一数据块是对第一设备存储的待验证文件进行分割得到的.
本申请实施例提供了一种验证文件完整性的方法,用于验证第二设备上存储的待验证文件的完整性。为了验证第二设备上存储的待验证文件的完整性,第一设备可以先根据第一算法和第一数据块集合计算第一签名,其中第一数据块集合是对第一设备存储的待验证文件进行分割得到的。第一设备可以向第二设备发送验证请求,验证请求可以包括待验证文件的文件标识。在接收到待验证文件的文件标识后,第二设备可以根据待验证文件的文件标识查询对应的第二数据块集合,第二数据块集合是对第二设备存储的待验证文件进行分割得到的。在确定第二数据块集合后,第二设备可以根据第一算法和第二数据块集合计算第二签名,并将第二签名发送给第一设备。在接收到第二签名后,第一设备可以比较第一签名和第二签名是否匹配。若匹配,则确定第二设备存储的待验证文件完整。这样,第一设备和第二设备分别计算两个签名,相当于分别从第一设备和第二设备存储的文件中提取关键信息。如此,无需比较整个文件即可验证第二设备存储的文件的完整性。相较于现有技术,简化了验证流程,提升了验证速度,实现了文件完整性的快速验证。
本申请实施例中提到的“第一设备”、“第二设备”等名称中的“第一”、“第二”只是用来做名字标识,并不代表顺序上的第一、第二。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (8)
1.一种验证文件完整性的方法,其特征在于,所述方法应用于第一设备,包括:
利用第一算法,所述第一设备根据第一数据块集合计算第一签名,所述第一数据块集合包括至少一个第一数据块,所述第一数据块集合是对第一设备存储的待验证文件进行分割得到的;
所述第一设备向第二设备发送验证请求,所述验证请求包括待验证文件的文件标识;
所述第一设备接收所述第二设备发送的第二签名,所述第二签名是第二设备利用所述第一算法根据第二数据块集合计算得到的,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
判断所述第一签名和第二签名是否匹配;若匹配,确定所述第二设备存储的待验证文件完整;
其中,所述第一设备根据第一数据块集合计算第一签名包括:
所述第一设备获取所述第一数据块集合中至少一个第一数据块;
所述第一设备计算所述至少一个第一数据块中每个第一数据块的哈希值;
所述第一设备按照所述第一数据块在待验证文件中的顺序,对所述第一数据块的哈希值进行排序,得到第一哈希序列;
所述第一设备根据所述第一哈希序列计算第一签名。
2.根据权利要求1所述的方法,其特征在于,所述第一设备根据所述第一哈希序列计算第一签名包括:
所述第一设备计算所述第一哈希序列的哈希值,得到所述第一签名。
3.根据权利要求1所述的方法,其特征在于,所述第一设备根据所述第一哈希序列计算第一签名包括:
所述第一设备根据第一哈希序列确定第二哈希序列,所述第一哈希序列包括M个哈希值,所述第二哈希序列包括N个哈希值,所述N大于或等于M;
所述第一设备遍历所述第二哈希序列,以n个哈希值为单位按序从所述第二哈希序列中提取x个第二哈希子序列,所述x为N和n的比值;
所述第一设备计算所述x个第二哈希子序列中每个第二哈希子序列的哈希值;
所述第一设备根据第二哈希子序列对应的第一数据块在待验证文件中的顺序,对所述第二哈希子序列的哈希值进行排序,得到第三哈希序列;
所述第一设备根据所述第三哈希序列计算第一签名。
4.一种验证文件完整性的方法,其特征在于,所述方法应用于第二设备,包括:
所述第二设备接收第一设备发送的验证请求,所述验证请求包括待验证文件的文件标识;
所述第二设备根据所述待验证文件的文件标识,确定第二数据块集合,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
利用第一算法,第二设备根据所述第二数据块集合计算第二签名;
所述第二设备向第一设备发送所述第二签名,以便第一设备在所述第二签名和第一签名匹配的情况下确定所述第二设备存储的待验证文件完整,所述第一签名是第一设备利用所述第一算法根据第一数据块集合计算得到的,所述第一数据块集合包括至少一个第一数据块,所述第一数据块是对第一设备存储的待验证文件进行分割得到的;
其中,所述第二设备根据所述第二数据块集合计算第二签名包括:
所述第二设备获取所述第二数据块集合中至少一个第二数据块;
所述第二设备计算所述至少一个第二数据块中每个第二数据块的哈希值;
所述第二设备按照所述第二数据块在待验证文件中的顺序,对所述第二数据块的哈希值进行排序,得到第四哈希序列;
所述第二设备根据所述第四哈希序列计算第二签名。
5.根据权利要求4所述的方法,其特征在于,所述第二设备根据所述第四哈希序列计算第二签名包括:
所述第二设备计算所述第四哈希序列的哈希值,得到所述第二签名。
6.根据权利要求4所述的方法,其特征在于,所述第二设备根据所述第四哈希序列计算第二签名包括:
所述第二设备根据第四哈希序列确定第五哈希序列,所述第四哈希序列包括M个哈希值,所述第五哈希序列包括N个哈希值,所述N大于或等于M;
所述第二设备遍历所述第五哈希序列,以n个哈希值为单位按序从所述第五哈希序列中提取x个第五哈希子序列,所述x为N和n的比值;
所述第二设备计算所述x个第五哈希子序列中每个第五哈希子序列的哈希值;
所述第二设备根据第五哈希子序列对应的第一数据块在待验证文件中的顺序,对所述第五哈希子序列的哈希值进行排序,得到第六哈希序列;
所述第二设备根据所述第六哈希序列计算第二签名。
7.一种验证文件完整性的装置,其特征在于,所述装置位于第一设备,包括:
第一计算模块,用于利用第一算法,根据第一数据块集合计算第一签名,所述第一数据块集合包括至少一个第一数据块,所述第一数据块集合是对第一设备存储的待验证文件进行分割得到的;
请求发送模块,用于向第二设备发送验证请求,所述验证请求包括待验证文件的文件标识;
第一接收模块,用于接收所述第二设备发送的第二签名,所述第二签名是第二设备利用所述第一算法根据第二数据块集合计算得到的,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
确定模块,用于判断所述第一签名和第二签名是否匹配;若匹配,确定所述第二设备存储的待验证文件完整;
其中,所述第一计算模块,具体用于获取所述第一数据块集合中至少一个第一数据块;计算所述至少一个第一数据块中每个第一数据块的哈希值;按照所述第一数据块在待验证文件中的顺序,对所述第一数据块的哈希值进行排序,得到第一哈希序列;根据所述第一哈希序列计算第一签名。
8.一种验证文件完整性的装置,其特征在于,所述装置位于第二设备,包括:
第二接收模块,用于接收第一设备发送的验证请求,所述验证请求包括待验证文件的文件标识;
文件获取模块,用于根据所述待验证文件的文件标识,确定第二数据块集合,所述第二数据块集合包括至少一个第二数据块,所述第二数据块是对第二设备存储的待验证文件进行分割得到的,所述第二数据块集合是第二设备根据所述待验证文件的文件标识选择的;
第二计算模块,用于利用第一算法,第二设备根据所述第二数据块集合计算第二签名;
第二发送模块,用于所述第二设备向第一设备发送所述第二签名,以便第一设备在所述第二签名和第一签名匹配的情况下确定所述第二设备存储的待验证文件完整,所述第一签名是第一设备利用所述第一算法根据第一数据块集合计算得到的,所述第一数据块集合包括至少一个第一数据块,所述第一数据块是对第一设备存储的待验证文件进行分割得到的;
其中,所述第二计算模块,具体用于获取所述第二数据块集合中至少一个第二数据块;计算所述至少一个第二数据块中每个第二数据块的哈希值;按照所述第二数据块在待验证文件中的顺序,对所述第二数据块的哈希值进行排序,得到第四哈希序列;根据所述第四哈希序列计算第二签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010903783.XA CN112016134B (zh) | 2020-09-01 | 2020-09-01 | 一种验证文件完整性的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010903783.XA CN112016134B (zh) | 2020-09-01 | 2020-09-01 | 一种验证文件完整性的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112016134A CN112016134A (zh) | 2020-12-01 |
CN112016134B true CN112016134B (zh) | 2023-08-18 |
Family
ID=73515614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010903783.XA Active CN112016134B (zh) | 2020-09-01 | 2020-09-01 | 一种验证文件完整性的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112016134B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765588B (zh) * | 2021-01-21 | 2024-05-10 | 网易宝有限公司 | 一种身份识别方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488952A (zh) * | 2013-09-24 | 2014-01-01 | 华为技术有限公司 | 文件完整性验证方法及文件处理器 |
CN108664221A (zh) * | 2018-05-11 | 2018-10-16 | 北京奇虎科技有限公司 | 一种数据持有证明方法、装置及可读存储介质 |
CN111125781A (zh) * | 2019-12-24 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 一种文件签名方法、装置和文件签名验证方法、装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989430A (zh) * | 2019-12-13 | 2021-06-18 | 华为技术有限公司 | 完整性校验方法、装置、终端设备及验证服务器 |
-
2020
- 2020-09-01 CN CN202010903783.XA patent/CN112016134B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488952A (zh) * | 2013-09-24 | 2014-01-01 | 华为技术有限公司 | 文件完整性验证方法及文件处理器 |
CN108664221A (zh) * | 2018-05-11 | 2018-10-16 | 北京奇虎科技有限公司 | 一种数据持有证明方法、装置及可读存储介质 |
CN111125781A (zh) * | 2019-12-24 | 2020-05-08 | 腾讯科技(深圳)有限公司 | 一种文件签名方法、装置和文件签名验证方法、装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112016134A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN107124444B (zh) | 一种区块链数据同步的方法和装置 | |
CN104468843A (zh) | 一种文件上传方法及装置 | |
CN102325167A (zh) | 一种网络文件传输的校验方法 | |
CN110661829B (zh) | 文件下载方法及装置、客户端和计算机可读存储介质 | |
CN111597590B (zh) | 一种基于区块链的数据完整性快速检验方法 | |
CN109635256B (zh) | 用于校验数据的方法和装置 | |
WO2014063550A1 (zh) | 一种微博资源分享的方法及系统 | |
CN105119722A (zh) | 一种身份验证方法、设备及系统 | |
CN112839003A (zh) | 数据校验方法及系统 | |
CN111639080B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN111290998A (zh) | 迁移数据的校对方法、装置、设备及存储介质 | |
CN112016134B (zh) | 一种验证文件完整性的方法及装置 | |
CN113273163A (zh) | 文件上传方法、文件下载方法和文件管理装置 | |
CN111159464B (zh) | 一种音频片段的检测方法及相关设备 | |
CN112422494A (zh) | 数据传输方法、数据安全验证方法及数据传输系统 | |
CN104270800B (zh) | 与终端建立通信连接的方法及系统 | |
CN109660496A (zh) | 校验信息的获取、资源校验和发布方法、装置及电子设备 | |
CN109525622A (zh) | 分片资源id的生成方法、资源分享方法,装置及电子设备 | |
CN110769024A (zh) | 电子测试数据的同步存储方法及系统 | |
CN111695098A (zh) | 多分布式集群访问方法及装置 | |
CN112217880A (zh) | 应用程序激活的归因方法、装置、介质和电子设备 | |
CN111404897A (zh) | 消息分发方法、装置、存储介质及电子设备 | |
CN110392083B (zh) | 文件秒传的控制方法、装置及终端设备 | |
CN111444542A (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 |