CN113114749A - 一种哈希链构建及文件数据同步方法、装置及系统 - Google Patents

一种哈希链构建及文件数据同步方法、装置及系统 Download PDF

Info

Publication number
CN113114749A
CN113114749A CN202110360749.7A CN202110360749A CN113114749A CN 113114749 A CN113114749 A CN 113114749A CN 202110360749 A CN202110360749 A CN 202110360749A CN 113114749 A CN113114749 A CN 113114749A
Authority
CN
China
Prior art keywords
file
change
directory
hash chain
hash
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.)
Granted
Application number
CN202110360749.7A
Other languages
English (en)
Other versions
CN113114749B (zh
Inventor
蒋文保
曾畅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Information Science and Technology University
Original Assignee
Beijing Information Science and Technology University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Information Science and Technology University filed Critical Beijing Information Science and Technology University
Publication of CN113114749A publication Critical patent/CN113114749A/zh
Application granted granted Critical
Publication of CN113114749B publication Critical patent/CN113114749B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种哈希链构建及文件数据同步方法、装置及系统,可以生成一个文件库状态变化哈希链,以便后续数据同步时,采用哈希链来检测文件库的变化,其优势在于不需要逐个对文件浏览比较,可以快速获取文件变化;数据同步各终端只需要第一次从服务器端下载文件库和哈希链,接下来的更新比对服务器端的哈希链,定位到相同的变化文件或目录节点,并执行后续变化节点操作,而不需要对每个文件数据进行同步认证,就能确保文件数据的完整性和不可抵赖性,这样大大提高了文件数据同步的效率;如果同步完成,就可根据新执行的文件或目录变化操作完善哈希链,或下载服务器端最新哈希链。

Description

一种哈希链构建及文件数据同步方法、装置及系统
技术领域
本发明涉及计算机领域,尤其涉及一种哈希链构建及文件数据同步方法、装置及系统。
背景技术
近年来,分布式数据库数据同步技术的应用日渐广泛,但是这种技术存在着复杂度高、开销大等特点。现在的文件资料同步传输过程中依然存在效率不足及局部更新困难等问题。
发明内容
本发明旨在提供一种克服上述问题或者至少部分地解决上述问题的哈希链构建及文件数据同步方法、装置及系统。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明第一方面提供了一种哈希链构建方法,包括:构建文件库状态变化哈希链,所述文件库状态变化哈希链包括:按照顺序相连的第一节点值、中间节点值和链尾节点值,其中,所述链尾节点值为所述文件库状态变化哈希链最新的一个节点值,所述文件库状态变化哈希链随着所述链尾节点值的更新变换不断生长;对当前文件库状态变化数据进行哈希计算,得到所述当前文件库状态变化数据对应的哈希值,将所述当前文件库状态变化数据对应的哈希值与当前链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述链尾节点值,所述当前链尾节点值作为所述中间节点值。
其中,所述文件库状态变化数据包括:文件库中发生变化的文件或目录的路径和名称;或文件库中发生变化的文件或目录的路径和名称、变化类型和操作类型,其中,所述变化类型包括:文件或目录,所述操作类型包括:新增、删除或更新;或文件库中发生变化的文件或目录的路径和名称,以及发生变化的文件数据。
本发明第二方面提供了一种基于上述的文件库状态变化哈希链进行文件数据同步方法,包括:服务器端构建和存储上述的文件库状态变化哈希链;下载端同步所述服务器端完整文件库,所述下载端将本地存储的本地哈希链与所述服务器端哈希链进行比对,确定相同的哈希链节点,执行所述服务器端哈希链中相同节点后续的新节点操作,获取文件库状态变化数据,包括获取发生变化的文件或目录的路径和名称,如果是新增操作,下载服务器端最新文件或目录到下载端;如果是删除操作,执行相同目录下文件或目录删除操作;如果是更新操作,删除旧文件下载最新文件到该目录;所述下载端根据执行的文件变化或目录变化更新本地哈希链。
其中,所述下载端根据执行的文件变化或目录变化更新本地哈希链包括:所述下载端根据新执行的文件变化或目录变化操作计算生成新的哈希链,更新本地哈希链;或者所述下载端从所述服务器端下载最新哈希链,更新本地哈希链。
本发明第三方面提供了一种哈希链构建方法,包括:构建目录变化哈希链和文件变化哈希链;其中,所述目录变化哈希链包括:按照顺序相连的目录第一节点值、目录中间节点值和目录链尾节点值,其中,所述目录链尾节点值为所述目录变化哈希链最新的一个节点值,所述目录变化哈希链随着所述目录链尾节点值的更新变换不断生长,对目录变化数据进行哈希计算,得到所述目录变化数据对应的哈希值,将所述当前目录变化数据对应的哈希值与当前目录链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述目录链尾节点值,所述当前目录链尾节点值作为所述目录中间节点值;所述文件变化哈希链包括:按照顺序相连的文件第一节点值、文件中间节点值和文件链尾节点值,其中,所述文件链尾节点值为所述文件变化哈希链最新的一个节点值,所述文件变化哈希链随着所述文件链尾节点值的更新变换不断生长,对文件变化数据进行哈希计算,得到所述文件变化数据对应的哈希值,将所述当前文件变化数据对应的哈希值与当前文件链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述文件链尾节点值,所述当前文件链尾节点值作为所述文件中间节点值。
其中,所述目录变化数据至少包括文件库中发生变化的目录的路径和名称;所述文件变化数据至少包括文件库中发生变化的文件的路径和名称。
本发明第四方面提供了一种基于上述的文件库状态变化哈希链进行文件数据同步方法,包括:服务器端构建和存储上述的文件库状态变化哈希链,包括目录变化哈希链和文件变化哈希链;下载端同步所述服务器端完整文件库,所述下载端将本地存储的本地目录变化哈希链与所述服务器端目录变化哈希链进行比对,确定相同的目录变化哈希链节点,执行所述服务器端目录哈希链中相同节点后续的新节点操作,获取目录变化数据,包括获取发生变化目录的路径和名称,如果是新增操作,下载服务器端最新目录到下载端;如果是删除操作,执行相同目录下目录删除操作;所述下载端如果判断存在目录下文件更新,则获取该变化目录下文件变化哈希链,将本地存储的本地文件变化哈希链与所述服务器端文件变化哈希链进行比对,确定相同的文件变化哈希链节点,执行服务器端文件变化哈希链中相同节点后续的新节点操作,获取文件变化数据,包括获取发生变化文件的路径以及文件名,如果是新增操作,下载服务器端最新文件到下载端;如果是删除操作,执行相同目录下文件删除操作;如果是更新操作,删除旧文件下载服务器端新文件到该目录;所述下载端根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链。
其中,所述下载端根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链包括:所述下载端根据新执行的文件变化或目录变化操作计算生成新的目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链;或者所述下载端从所述服务器端下载最新目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。
本发明第五方面提供了一种哈希链构建装置,包括:构建模块,用于构建文件库状态变化哈希链,所述文件库状态变化哈希链包括:按照顺序相连的第一节点值、中间节点值和链尾节点值,其中,所述链尾节点值为所述文件库状态变化哈希链最新的一个节点值,所述文件库状态变化哈希链随着所述链尾节点值的更新变换不断生长;对当前文件库状态变化数据进行哈希计算,得到所述当前文件库状态变化数据对应的哈希值,将所述当前文件库状态变化数据对应的哈希值与当前链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述链尾节点值,所述当前链尾节点值作为所述中间节点值。
其中,所述文件库状态变化数据包括:文件库中发生变化的文件或目录的路径和名称;或文件库中发生变化的文件或目录的路径和名称、变化类型和操作类型,其中,所述变化类型包括:文件或目录,所述操作类型包括:新增、删除或更新;或文件库中发生变化的文件或目录的路径和名称,以及发生变化的文件数据。
本发明第六方面提供了一种基于上述的装置构建的文件库状态变化哈希链进行文件数据同步系统,包括:服务器端,用于构建和存储上述的装置构建的文件库状态变化哈希链;下载端,用于同步所述服务器端完整文件库,将本地存储的本地哈希链与所述服务器端哈希链进行比对,确定相同的哈希链节点,执行所述服务器端哈希链中相同节点后续的新节点操作,获取文件库状态变化数据,包括获取发生变化的文件或目录的路径和名称,如果是新增操作,下载服务器端最新文件或目录到下载端;如果是删除操作,执行相同目录下文件或目录删除操作;如果是更新操作,删除旧文件下载最新文件到该目录;根据执行的文件变化或目录变化更新本地哈希链。
其中,所述下载端通过如下方式根据执行的文件变化或目录变化更新本地哈希链:所述下载端,具体用于根据新执行的文件变化或目录变化操作计算生成新的哈希链,更新本地哈希链;或者从所述服务器端下载最新哈希链,更新本地哈希链。
本发明第七方面提供了一种哈希链构建装置,包括:构建模块,用于构建目录变化哈希链和文件变化哈希链;其中,所述目录变化哈希链包括:按照顺序相连的目录第一节点值、目录中间节点值和目录链尾节点值,其中,所述目录链尾节点值为所述目录变化哈希链最新的一个节点值,所述目录变化哈希链随着所述目录链尾节点值的更新变换不断生长,对目录变化数据进行哈希计算,得到所述目录变化数据对应的哈希值,将所述当前目录变化数据对应的哈希值与当前目录链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述目录链尾节点值,所述当前目录链尾节点值作为所述目录中间节点值;所述文件变化哈希链包括:按照顺序相连的文件第一节点值、文件中间节点值和文件链尾节点值,其中,所述文件链尾节点值为所述文件变化哈希链最新的一个节点值,所述文件变化哈希链随着所述文件链尾节点值的更新变换不断生长,对文件变化数据进行哈希计算,得到所述文件变化数据对应的哈希值,将所述当前文件变化数据对应的哈希值与当前文件链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述文件链尾节点值,所述当前文件链尾节点值作为所述文件中间节点值。
其中,所述目录变化数据至少包括文件库中发生变化的目录的路径和名称;所述文件变化数据至少包括文件库中发生变化的文件的路径和名称。
本发明第八方面提供了一种基于上述的装置构建的文件库状态变化哈希链进行文件数据同步系统,包括:服务器端,用于构建和存储上述的装置构建的文件库状态变化哈希链,包括目录变化哈希链和文件变化哈希链;下载端,用于同步所述服务器端完整文件库,将本地存储的本地目录变化哈希链与所述服务器端目录变化哈希链进行比对,确定相同的目录变化哈希链节点,执行所述服务器端目录哈希链中相同节点后续的新节点操作,获取目录变化数据,包括获取发生变化目录的路径和名称,如果是新增操作,下载服务器端最新目录到下载端;如果是删除操作,执行相同目录下目录删除操作;如果判断存在目录下文件更新,则获取该变化目录下文件变化哈希链,将本地存储的本地文件变化哈希链与所述服务器端文件变化哈希链进行比对,确定相同的文件变化哈希链节点,执行服务器端文件变化哈希链中相同节点后续的新节点操作,获取文件变化数据,包括获取发生变化文件的路径以及文件名,如果是新增操作,下载服务器端最新文件到下载端;如果是删除操作,执行相同目录下文件删除操作;如果是更新操作,删除旧文件下载服务器端新文件到该目录;根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链。
其中,所述下载端通过如下方式根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链:所述下载端,具体用于根据新执行的文件变化或目录变化操作计算生成新的目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链;或者从所述服务器端下载最新目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。
由此可见,通过本发明提供的哈希链构建及文件数据同步方法、装置及系统,可以生成一个文件库状态变化哈希链,以便后续数据同步时,采用哈希链来检测文件库的变化,其优势在于不需要逐个对文件浏览比较,可以快速获取文件变化;数据同步各终端只需要第一次从服务器端下载文件库和哈希链,接下来的更新比对服务器端的哈希链,定位到相同的变化文件或目录节点,并执行后续变化节点操作,而不需要对每个文件数据进行同步认证,就能确保文件数据的完整性和不可抵赖性,这样大大提高了文件数据同步的效率;如果同步完成,就可根据新执行的文件或目录变化操作完善哈希链,或下载服务器端最新哈希链。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的目录-文件单级哈希链构建方法的示意图;
图2为本发明实施例提供的目录变化哈希链构建方法示意图;
图3为本发明实施例提供的文件变化哈希链构建方法示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的核心在于:本发明设计了一种文件库状态变化哈希链的构建方法及装置,以及基于构建的文件库状态变化哈希链进行文件数据同步的方法及系统,将服务器端变化的文件或目录作为一个个节点,并根据时间先后顺序将文件或目录的哈希值通过迭代哈希,形成一个记录了文件库从起始状态所有变化的哈希链。数据同步各终端只需要第一次从服务器端下载文件库和哈希链,接下来的更新比对服务器端的哈希链,定位到相同的变化文件或目录节点,并执行后续变化节点操作。而不需要对每个文件数据进行同步认证,就能确保文件数据的完整性和不可抵赖性。如果同步完成,就可根据新执行的文件或目录变化操作完善哈希链,或下载服务器端最新哈希链。而采用哈希链来检测文件库的变化,其优势在于不需要逐个对文件浏览比较,可以快速获取文件变化。
以下,提供两种实施例分别对本发明的具体方案进行说明:
实施例1
图1示出了本发明实施例1提供的目录-文件单级哈希链构建方法的示意图,以下结合图1,对本发明实施例提供的文件库状态变化哈希链的构建方法进行说明,该方法包括:
构建文件库状态变化哈希链,文件库状态变化哈希链包括:按照顺序相连的第一节点值、中间节点值和链尾节点值,其中,链尾节点值为文件库状态变化哈希链最新的一个节点值,文件库状态变化哈希链随着链尾节点值的更新变换不断生长;对当前文件库状态变化数据进行哈希计算,得到当前文件库状态变化数据对应的哈希值,将当前文件库状态变化数据对应的哈希值与当前链尾节点值进行哈希计算得到新的哈希值,将新的哈希值作为链尾节点值,当前链尾节点值作为中间节点值。
作为本发明实施例的一个可选实施方式,文件库状态变化数据包括:文件库中发生变化的文件或目录的路径和名称;或文件库中发生变化的文件或目录的路径和名称、变化类型和操作类型,其中,变化类型包括:文件或目录,操作类型包括:新增、删除或更新;或文件库中发生变化的文件或目录的路径和名称,以及发生变化的文件数据。
具体地,将服务器端从初始状态开始的目录、文件变化根据先后顺序视作一个文件库变化序列,例如图1中的目录和文件即是服务器上按照时间顺序排列的所有的变化内容。对每一个变化内容都通过哈希函数计算其哈希值,如图1中变化序列通过哈希函数计算能够得到哈希值h1到哈希值hn,将哈希值h1到哈希值hn作为一个哈希序列。这个哈希序列中的哈希值既可以是变化的文件或目录名称哈希值,也可以是具体的文件内容哈希值,这在本发明中可以针对具体的需求进行选择。再对哈希序列进行迭代哈希生成哈希链,哈希链节点可以用四元组<p,hash,pType,oType>表示,其中p表示该节点对应的变化的文件或目录的相对路径和名称;hash表示该节点存储的哈希值,正是每个节点的哈希值构成了一条哈希链;pType代表该变化内容为目录变化或者是文件变化,如果是目录变化则表示为0,文件变化表示为1;oType代表该变化内容类型,增加的目录/文件表示为0,删除的目录/文件表示为1,更新的文件表示为2。
具体实施时,服务器端生成哈希链的具体步骤可以包括:
S1,服务器端文件库存在数据更新,将每一次的变化内容按照时间顺序生成变化内容序列。
S2,每次从变化目录序列头取一个变化内容(变化的文件名/变化的目录名)进行哈希函数计算得到哈希值,例如对变化内容1进行哈希函数计算得到哈希值h1.每得到一个哈希值都将其放入哈希序列尾部。
S3,初始化哈希链,将一个值为“”的空元素的指针指向哈希链。将哈希链节点计数器置为0。
S4,若哈希序列中存在元素,则从序列头取出一个元素,将这个元素与哈希链表的最后一个元素一起通过哈希函数计算得到一个新的哈希值。把此哈希值完善成四元组<p,hash,pType,oType>作为哈希链节点,将其指针指向哈希链的链尾。
S5,将哈希链节点计数器进行加1操作,转到执行步骤S4。
S6,哈希序列为空,结束操作。
由此可见,通过本发明实施例1提供的文件库状态变化哈希链的构建方法,可以生成一个文件库状态变化哈希链,以便后续数据同步时,采用哈希链来检测文件库的变化,其优势在于不需要逐个对文件浏览比较,可以快速获取文件变化。
以下,提供了本发明实施例1的基于上述文件库状态变化哈希链进行文件数据同步方法,包括:
S1,服务器端构建和存储上述的文件库状态变化哈希链;
S2,下载端同步服务器端完整文件库,下载端将本地存储的本地哈希链与服务器端哈希链进行比对,确定相同的哈希链节点,执行服务器端哈希链中相同节点后续的新节点操作,获取文件库状态变化数据,包括获取发生变化的文件或目录的路径和名称,如果是新增操作,下载服务器端最新文件或目录到下载端;如果是删除操作,执行相同目录下文件或目录删除操作;如果是更新操作,删除旧文件下载最新文件到该目录;
S3,下载端根据执行的文件变化或目录变化更新本地哈希链。
作为本发明实施例的一个可选实施方式,下载端根据执行的文件变化或目录变化更新本地哈希链包括:下载端根据新执行的文件变化或目录变化操作计算生成新的哈希链,更新本地哈希链。下载端更新本地哈希链时,如遇到服务器端的更新节点操作(本地操作为删除、新增),本地哈希链节点以服务器端的更新内容为哈希值,并记录为更新操作;或者下载端从服务器端下载最新哈希链,更新本地哈希链。
具体地,下载端同步服务器端变化的文件需要先比对服务器端的哈希链,用来在下载端快速获取最新的文件变化。例如下载终端在同步服务器端的文件数据,下载终端首先对比服务器端哈希链,看有哪些新增变化节点,然后按照顺序执行变化节点操作,如果是新增或更新的目录/文件,下载端在服务器端下载最新的目录/文件。如果是删除目录/文件,下载端在本地执行相同操作。如果同步完成,下载端可以自行按照更新操作更新哈希链,更新哈希链的方法与服务器端一致。同时也可以直接下载服务器端最新哈希链,这里可根据不同需求进行选择。
具体实施时,下载端下载终端文件同步的具体步骤包括:
S1,判断是否是首次与服务器端同步,如果否则进入步骤S2。如果是,下载端下载服务器端完整文件库并携带其哈希链。
S2,将本地哈希链与服务器端哈希链比对,判断双方哈希链节点计数器是否相同,相同则证明下载端已同步最新文件库。若计数器不同则转到执行步骤S3。
S3,执行服务器端哈希链中的新节点操作,获取相应路径、文件/目录名。如果是新增操作,就下载服务器端最新文件/目录到下载端。如果是删除操作,就执行相同目录下文件/目录删除操作。如果是更新操作,就删除旧文件下载最新文件到该目录。如果在下载端生成哈希链,执行步骤S5,否则执行步骤S4。
S4,按照顺序依次执行新节点操作,执行到哈希链尾则同步完成,下载服务器端最新哈希链到下载端,操作结束。
S5,将新变化内容生成哈希序列,并迭代生成新的哈希节点,将指针指向哈希链尾。哈希链节点计数器加1。
S6,哈希链节点计数器不同则继续执行步骤S3,相同则同步结束。
由此可见,通过本发明实施例1提供的基于上述文件库状态变化哈希链进行文件数据同步方法,数据同步各终端只需要第一次从服务器端下载文件库和哈希链,接下来的更新比对服务器端的哈希链,定位到相同的变化文件或目录节点,并执行后续变化节点操作,而不需要对每个文件数据进行同步认证,就能确保文件数据的完整性和不可抵赖性,这样大大提高了文件数据同步的效率;如果同步完成,就可根据新执行的文件或目录变化操作完善哈希链,或下载服务器端最新哈希链。
以下提供了本发明实施例1的基于哈希链的文件库状态变化哈希链的构建装置,该文件库状态变化哈希链的构建装置应用上述构建方法,以下仅对文件库状态变化哈希链的构建装置的结构进行简单说明,其他未尽事宜,请参照上述文件库状态变化哈希链的构建方法中的相关描述,本发明实施例1提供的文件库状态变化哈希链的构建装置,包括:
构建模块,用于构建文件库状态变化哈希链,文件库状态变化哈希链包括:按照顺序相连的第一节点值、中间节点值和链尾节点值,其中,链尾节点值为文件库状态变化哈希链最新的一个节点值,文件库状态变化哈希链随着链尾节点值的更新变换不断生长;对当前文件库状态变化数据进行哈希计算,得到当前文件库状态变化数据对应的哈希值,将当前文件库状态变化数据对应的哈希值与当前链尾节点值进行哈希计算得到新的哈希值,将新的哈希值作为链尾节点值,当前链尾节点值作为中间节点值。
作为本发明实施例的一个可选实施方式,文件库状态变化数据包括:文件库中发生变化的文件或目录的路径和名称;或文件库中发生变化的文件或目录的路径和名称、变化类型和操作类型,其中,变化类型包括:文件或目录,操作类型包括:新增、删除或更新;或文件库中发生变化的文件或目录的路径和名称,以及发生变化的文件数据。
由此可见,通过本发明实施例1提供的文件库状态变化哈希链的构建装置,可以生成一个文件库状态变化哈希链,以便后续数据同步时,采用哈希链来检测文件库的变化,其优势在于不需要逐个对文件浏览比较,可以快速获取文件变化。
以下还提供了本发明实施例1的基于上述装置构建的文件库状态变化哈希链进行文件数据同步的系统,该文件数据同步系统应用上述文件数据同步方法,以下仅文件数据同步系统的结构进行简单说明,其他未尽事宜,请参照上述文件数据同步方法中的相关描述,本发明实施例1提供的文件数据同步系统,包括:
服务器端,用于构建和存储如权利要求9或10的装置构建的文件库状态变化哈希链;
下载端,用于同步服务器端完整文件库,将本地存储的本地哈希链与服务器端哈希链进行比对,确定相同的哈希链节点,执行服务器端哈希链中相同节点后续的新节点操作,获取文件库状态变化数据,包括获取发生变化的文件或目录的路径和名称,如果是新增操作,下载服务器端最新文件或目录到下载端;如果是删除操作,执行相同目录下文件或目录删除操作;如果是更新操作,删除旧文件下载最新文件到该目录;根据执行的文件变化或目录变化更新本地哈希链。
作为本发明实施例的一个可选实施方式,下载端通过如下方式根据执行的文件变化或目录变化更新本地哈希链:下载端,具体用于根据新执行的文件变化或目录变化操作计算生成新的哈希链,更新本地哈希链。下载端更新本地哈希链时,如遇到服务器端的更新节点操作(本地操作为删除、新增),本地哈希链节点以服务器端的更新内容为哈希值,并记录为更新操作;或者从服务器端下载最新哈希链,更新本地哈希链。
由此可见,通过本发明实施例1提供的基于上述文件库状态变化哈希链进行文件数据同步系统,数据同步各终端只需要第一次从服务器端下载文件库和哈希链,接下来的更新比对服务器端的哈希链,定位到相同的变化文件或目录节点,并执行后续变化节点操作,而不需要对每个文件数据进行同步认证,就能确保文件数据的完整性和不可抵赖性,这样大大提高了文件数据同步的效率;如果同步完成,就可根据新执行的文件或目录变化操作完善哈希链,或下载服务器端最新哈希链。
实施例2
图2示出了本发明实施例2提供的目录变化哈希链构建方法的示意图,图3示出了本发明实施例2提供的文件变化哈希链构建方法的示意图,以下结合图1和图2,对本发明实施例提供的文件库状态变化哈希链的构建方法进行说明,该方法包括:
构建目录变化哈希链和文件变化哈希链;其中,目录变化哈希链包括:按照顺序相连的目录第一节点值、目录中间节点值和目录链尾节点值,其中,目录链尾节点值为目录变化哈希链最新的一个节点值,目录变化哈希链随着目录链尾节点值的更新变换不断生长,对目录变化数据进行哈希计算,得到目录变化数据对应的哈希值,将当前目录变化数据对应的哈希值与当前目录链尾节点值进行哈希计算得到新的哈希值,将新的哈希值作为目录链尾节点值,当前目录链尾节点值作为目录中间节点值;文件变化哈希链包括:按照顺序相连的文件第一节点值、文件中间节点值和文件链尾节点值,其中,文件链尾节点值为文件变化哈希链最新的一个节点值,文件变化哈希链随着文件链尾节点值的更新变换不断生长,对文件变化数据进行哈希计算,得到文件变化数据对应的哈希值,将当前文件变化数据对应的哈希值与当前文件链尾节点值进行哈希计算得到新的哈希值,将新的哈希值作为文件链尾节点值,当前文件链尾节点值作为文件中间节点值。
作为本发明实施例的一个可选实施方式,目录变化数据至少包括文件库中发生变化的目录的路径和名称;文件变化数据至少包括文件库中发生变化的文件的路径和名称。
具体地,将服务器端文件库变化分为目录级和文件级,分别构建两级哈希链。首先是文件库中的目录变化,对每一个变化目录相对路径都通过哈希函数计算其哈希值,如图中目录相对路径通过哈希函数计算能够得到哈希值h1到哈希值hn,将哈希值h1到哈希值hn作为一个哈希序列,再对哈希序列进行迭代哈希生成哈希链。目录哈希链节点可以用三元组<p,hash,oType>表示,其中p表示该节点对应的变化目录的相对路径和名称;hash表示该节点存储的哈希值,正是每个节点的哈希值构成了一条哈希链;oType代表该目录变化类型,增加的目录表示为0,删除的目录表示为1,目录中有文件更新表示为2。每一个目录下又存在着一条文件哈希链,这条哈希链上记录着这个目录下所有文件的变化,包括文件的增加、更新和删除。文件哈希链节点可以用三元组<p,hash,oType>表示,其中p表示该节点对应目录下变化文件的路径和名称;hash表示该节点存储的哈希值;oType代表该文件变化类型,增加的文件表示为0,删除的文件表示为1,文件更新表示为2。
具体实施时,服务器端生成哈希链的具体步骤包括:
S1,服务器端文件库存在数据更新,将每一次的变化目录或变化文件的目录按照时间顺序生成变化目录序列。
S2,每次从变化目录序列头取一个变化目录名进行哈希函数计算得到哈希值,例如对变化目录1进行哈希函数计算得到哈希值h1.每得到一个哈希值都将其放入哈希序列尾部。
S3,初始化目录哈希链,将一个值为“”的空元素的指针指向哈希链。将目录哈希链节点计数器置为0。
S4,若目录哈希序列中存在元素,则从序列头取出一个元素,将这个元素与哈希链表的最后一个元素一起通过哈希函数计算得到一个新的哈希值。把此哈希值完善成三元组<p,hash,oType>作为哈希链节点,将其指针指向哈希链的链尾。哈希序列为空,结束操作。
S5,将目录哈希链节点计数器进行加1操作。如果该节点是该目录下有文件更新则进行步骤S6,否则执行步骤S4。
S6,获取该目录下的文件哈希链,将变化文件按照时间顺序生成变化文件序列。
S7,每次从变化文件序列头取一个变化文件名进行哈希函数计算得到哈希值,每得到一个哈希值都将其放入哈希序列尾部。如果哈希链为空执行步骤S8。不为空执行步骤S9。
S8,初始化文件哈希链,将一个值为“”的空元素的指针指向哈希链。将哈希链节点计数器置为0。
S9,若文件哈希序列中存在元素,则从序列头取出一个元素,将这个元素与哈希链表的最后一个元素一起通过哈希函数计算得到一个新的哈希值。把此哈希值完善成三元组<p,hash,oType>作为哈希链节点,将其指针指向哈希链的链尾。哈希序列为空,结束操作。
S10,文件哈希链节点计数器进行加1操作。返回执行步骤S4。
由此可见,通过本发明实施例2提供的文件库状态变化哈希链的构建方法,可以生成一个文件库状态变化哈希链,以便后续数据同步时,采用哈希链来检测文件库的变化,其优势在于不需要逐个对文件浏览比较,可以快速获取文件变化。
以下,提供了本发明实施例2的基于上述文件库状态变化哈希链进行文件数据同步方法,包括:
S1,服务器端构建和存储上述的文件库状态变化哈希链,包括目录变化哈希链和文件变化哈希链;
S2,下载端同步服务器端完整文件库,下载端将本地存储的本地目录变化哈希链与服务器端目录变化哈希链进行比对,确定相同的目录变化哈希链节点,执行服务器端目录哈希链中相同节点后续的新节点操作,获取目录变化数据,包括获取发生变化目录的路径和名称,如果是新增操作,下载服务器端最新目录到下载端;如果是删除操作,执行相同目录下目录删除操作;
S3,下载端如果判断存在目录下文件更新,则获取该变化目录下文件变化哈希链,将本地存储的本地文件变化哈希链与服务器端文件变化哈希链进行比对,确定相同的文件变化哈希链节点,执行服务器端文件变化哈希链中相同节点后续的新节点操作,获取文件变化数据,包括获取发生变化文件的路径以及文件名,如果是新增操作,下载服务器端最新文件到下载端;如果是删除操作,执行相同目录下文件删除操作;如果是更新操作,删除旧文件下载服务器端新文件到该目录;
S4,下载端根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链。
作为本发明实施例的一个可选实施方式,下载端根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链包括:下载端根据新执行的文件变化或目录变化操作计算生成新的目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。下载端更新本地目录变化哈希链和/或文件变化哈希链时,如遇到服务器端的更新节点操作(本地操作为删除、新增),本地目录变化哈希链和/或文件变化哈希链节点以服务器端的更新内容为哈希值,并记录为更新操作;或者下载端从服务器端下载最新目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。
具体地,下载端同步服务器端变化的文件数据需要先比对服务器端的目录哈希链,用来获取是哪个目录下存在着新的变化内容。如果是目录的变化(目录哈希链上oType=0/1),就可以进行目录的增加或删除操作。如果是目录下文件的变化(目录哈希链上oType=2),就需要获取变化目录下的文件哈希链,并与服务器端相同目录下文件哈希链比对,再对相应文件进行增删改操作。如果同步完成,下载端可以自行按照更新操作更新哈希链,更新哈希链的方法与服务器端一致。同时也可以直接下载服务器端最新的两级哈希链,这里可根据不同需求进行选择。
具体实施时,下载端下载终端文件同步的具体步骤包括:
S1,判断是否是首次与服务器端同步,如果否则进入步骤S2。如果是,下载端下载服务器端完整文件库并携带其哈希链。
S2,将本地目录哈希链与服务器端目录哈希链比对,判断双方目录哈希链节点计数器是否相同,相同则证明下载端已同步最新文件库。若计数器不同则转到执行步骤S3,相同则同步结束。
S3,执行服务器端目录哈希链中的新节点操作,获取相应路径、目录名。如果是新增操作,就下载服务器端最新目录到下载端。如果是删除操作,就执行相同目录下目录删除操作。如果下载端不需要自行生成目录哈希链则执行步骤S4。如果需要生成目录哈希链则执行步骤S5。
S4,按照顺序依次执行新节点操作,如果存在目录下文件更新则执行步骤S6。执行到目录哈希链尾则同步完成,下载服务器端该目录文件哈希链到下载端,操作结束返回步骤S2。
S5,将新变化内容生成目录哈希序列,并迭代生成新的目录哈希节点,将指针指向目录哈希链尾。目录哈希链节点计数器加1。如果存在目录下文件更新则执行步骤S6,否则返回步骤S2。
S6,获取该变化目录下文件哈希链。如果该目录文件哈希链为空,则下载服务器端该目录到下载端。如果不为空,则将下载端文件哈希链与服务器端同目录下文件哈希链比对,判断双方文件哈希链节点计数器是否相同,不相同执行步骤S7。
S7,执行服务器端文件哈希链中的新节点操作,获取相应路径、文件名。如果是新增操作,就下载服务器端最新文件到下载端。如果是删除操作,就执行相同目录下文件删除操作。如果是更新操作,就删除旧文件下载服务器端新文件到该目录。如果在下载端生成哈希链,执行步骤S9,否则执行步骤S8。
S8,按照顺序依次执行新节点操作,执行到文件哈希链尾则同步完成,下载服务器端该目录文件哈希链到下载端,操作结束返回步骤S2。
S9,将新变化内容生成文件哈希序列,并迭代生成新的文件哈希节点,将指针指向文件哈希链尾。文件哈希链节点计数器加1。返回步骤S2。
由此可见,通过本发明实施例2提供的基于上述文件库状态变化哈希链进行文件数据同步方法,数据同步各终端只需要第一次从服务器端下载文件库和哈希链,接下来的更新比对服务器端的哈希链,定位到相同的变化文件或目录节点,并执行后续变化节点操作,而不需要对每个文件数据进行同步认证,就能确保文件数据的完整性和不可抵赖性,这样大大提高了文件数据同步的效率;如果同步完成,就可根据新执行的文件或目录变化操作完善哈希链,或下载服务器端最新哈希链。
以下提供了本发明实施例2的基于哈希链的文件库状态变化哈希链的构建装置,该文件库状态变化哈希链的构建装置应用上述构建方法,以下仅对文件库状态变化哈希链的构建装置的结构进行简单说明,其他未尽事宜,请参照上述文件库状态变化哈希链的构建方法中的相关描述,本发明实施例2提供的文件库状态变化哈希链的构建装置,包括:
构建模块,用于构建目录变化哈希链和文件变化哈希链;其中,目录变化哈希链包括:按照顺序相连的目录第一节点值、目录中间节点值和目录链尾节点值,其中,目录链尾节点值为目录变化哈希链最新的一个节点值,目录变化哈希链随着目录链尾节点值的更新变换不断生长,对目录变化数据进行哈希计算,得到目录变化数据对应的哈希值,将当前目录变化数据对应的哈希值与当前目录链尾节点值进行哈希计算得到新的哈希值,将新的哈希值作为目录链尾节点值,当前目录链尾节点值作为目录中间节点值;文件变化哈希链包括:按照顺序相连的文件第一节点值、文件中间节点值和文件链尾节点值,其中,文件链尾节点值为文件变化哈希链最新的一个节点值,文件变化哈希链随着文件链尾节点值的更新变换不断生长,对文件变化数据进行哈希计算,得到文件变化数据对应的哈希值,将当前文件变化数据对应的哈希值与当前文件链尾节点值进行哈希计算得到新的哈希值,将新的哈希值作为文件链尾节点值,当前文件链尾节点值作为文件中间节点值。
作为本发明实施例的一个可选实施方式,目录变化数据至少包括文件库中发生变化的目录的路径和名称;文件变化数据至少包括文件库中发生变化的文件的路径和名称。
由此可见,通过本发明实施例2提供的文件库状态变化哈希链的构建装置,可以生成一个文件库状态变化哈希链,以便后续数据同步时,采用哈希链来检测文件库的变化,其优势在于不需要逐个对文件浏览比较,可以快速获取文件变化。
以下还提供了本发明实施例2的基于上述装置构建的文件库状态变化哈希链进行文件数据同步的系统,该文件数据同步系统应用上述文件数据同步方法,以下仅文件数据同步系统的结构进行简单说明,其他未尽事宜,请参照上述文件数据同步方法中的相关描述,本发明实施例1提供的文件数据同步系统,包括:
服务器端,用于构建和存储上述装置构建的文件库状态变化哈希链,包括目录变化哈希链和文件变化哈希链;
下载端,用于同步服务器端完整文件库,将本地存储的本地目录变化哈希链与服务器端目录变化哈希链进行比对,确定相同的目录变化哈希链节点,执行服务器端目录哈希链中相同节点后续的新节点操作,获取目录变化数据,包括获取发生变化目录的路径和名称,如果是新增操作,下载服务器端最新目录到下载端;如果是删除操作,执行相同目录下目录删除操作;如果判断存在目录下文件更新,则获取该变化目录下文件变化哈希链,将本地存储的本地文件变化哈希链与服务器端文件变化哈希链进行比对,确定相同的文件变化哈希链节点,执行服务器端文件变化哈希链中相同节点后续的新节点操作,获取文件变化数据,包括获取发生变化文件的路径以及文件名,如果是新增操作,下载服务器端最新文件到下载端;如果是删除操作,执行相同目录下文件删除操作;如果是更新操作,删除旧文件下载服务器端新文件到该目录;根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链。
作为本发明实施例的一个可选实施方式,下载端通过如下方式根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链:下载端,具体用于根据新执行的文件变化或目录变化操作计算生成新的目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。下载端更新本地目录变化哈希链和/或文件变化哈希链时,如遇到服务器端的更新节点操作(本地操作为删除、新增),本地目录变化哈希链和/或文件变化哈希链节点以服务器端的更新内容为哈希值,并记录为更新操作;或者从服务器端下载最新目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。
由此可见,通过本发明实施例2提供的基于上述文件库状态变化哈希链进行文件数据同步系统,数据同步各终端只需要第一次从服务器端下载文件库和哈希链,接下来的更新比对服务器端的哈希链,定位到相同的变化文件或目录节点,并执行后续变化节点操作,而不需要对每个文件数据进行同步认证,就能确保文件数据的完整性和不可抵赖性,这样大大提高了文件数据同步的效率;如果同步完成,就可根据新执行的文件或目录变化操作完善哈希链,或下载服务器端最新哈希链。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (16)

1.一种哈希链构建方法,其特征在于,包括:
构建文件库状态变化哈希链,所述文件库状态变化哈希链包括:按照顺序相连的第一节点值、中间节点值和链尾节点值,其中,所述链尾节点值为所述文件库状态变化哈希链最新的一个节点值,所述文件库状态变化哈希链随着所述链尾节点值的更新变换不断生长;对当前文件库状态变化数据进行哈希计算,得到所述当前文件库状态变化数据对应的哈希值,将所述当前文件库状态变化数据对应的哈希值与当前链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述链尾节点值,所述当前链尾节点值作为所述中间节点值。
2.根据权利要求1所述的方法,其特征在于,所述文件库状态变化数据包括:
文件库中发生变化的文件或目录的路径和名称;或
文件库中发生变化的文件或目录的路径和名称、变化类型和操作类型,其中,所述变化类型包括:文件或目录,所述操作类型包括:新增、删除或更新;或
文件库中发生变化的文件或目录的路径和名称,以及发生变化的文件数据。
3.一种基于如权利要求1或2所述的方法构建的文件库状态变化哈希链进行文件数据同步方法,其特征在于,包括:
服务器端构建和存储如权利要求1或2所述的文件库状态变化哈希链;
下载端同步所述服务器端完整文件库,所述下载端将本地存储的本地哈希链与所述服务器端哈希链进行比对,确定相同的哈希链节点,执行所述服务器端哈希链中相同节点后续的新节点操作,获取文件库状态变化数据,包括获取发生变化的文件或目录的路径和名称,如果是新增操作,下载服务器端最新文件或目录到下载端;如果是删除操作,执行相同目录下文件或目录删除操作;如果是更新操作,删除旧文件下载最新文件到该目录;
所述下载端根据执行的文件变化或目录变化更新本地哈希链。
4.根据权利要求3所述的方法,其特征在于,所述下载端根据执行的文件变化或目录变化更新本地哈希链包括:
所述下载端根据新执行的文件变化或目录变化操作计算生成新的哈希链,更新本地哈希链;
或者
所述下载端从所述服务器端下载最新哈希链,更新本地哈希链。
5.一种哈希链构建方法,其特征在于,包括:
构建目录变化哈希链和文件变化哈希链;其中,所述目录变化哈希链包括:按照顺序相连的目录第一节点值、目录中间节点值和目录链尾节点值,其中,所述目录链尾节点值为所述目录变化哈希链最新的一个节点值,所述目录变化哈希链随着所述目录链尾节点值的更新变换不断生长,对目录变化数据进行哈希计算,得到所述目录变化数据对应的哈希值,将所述当前目录变化数据对应的哈希值与当前目录链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述目录链尾节点值,所述当前目录链尾节点值作为所述目录中间节点值;所述文件变化哈希链包括:按照顺序相连的文件第一节点值、文件中间节点值和文件链尾节点值,其中,所述文件链尾节点值为所述文件变化哈希链最新的一个节点值,所述文件变化哈希链随着所述文件链尾节点值的更新变换不断生长,对文件变化数据进行哈希计算,得到所述文件变化数据对应的哈希值,将所述当前文件变化数据对应的哈希值与当前文件链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述文件链尾节点值,所述当前文件链尾节点值作为所述文件中间节点值。
6.根据权利要求5所述的方法,其特征在于,所述目录变化数据至少包括文件库中发生变化的目录的路径和名称;所述文件变化数据至少包括文件库中发生变化的文件的路径和名称。
7.一种基于如权利要求5或6所述的方法构建的文件库状态变化哈希链进行文件数据同步方法,其特征在于,包括:
服务器端构建和存储如权利要求5或6所述的文件库状态变化哈希链,包括目录变化哈希链和文件变化哈希链;
下载端同步所述服务器端完整文件库,所述下载端将本地存储的本地目录变化哈希链与所述服务器端目录变化哈希链进行比对,确定相同的目录变化哈希链节点,执行所述服务器端目录哈希链中相同节点后续的新节点操作,获取目录变化数据,包括获取发生变化目录的路径和名称,如果是新增操作,下载服务器端最新目录到下载端;如果是删除操作,执行相同目录下目录删除操作;
所述下载端如果判断存在目录下文件更新,则获取该变化目录下文件变化哈希链,将本地存储的本地文件变化哈希链与所述服务器端文件变化哈希链进行比对,确定相同的文件变化哈希链节点,执行服务器端文件变化哈希链中相同节点后续的新节点操作,获取文件变化数据,包括获取发生变化文件的路径以及文件名,如果是新增操作,下载服务器端最新文件到下载端;如果是删除操作,执行相同目录下文件删除操作;如果是更新操作,删除旧文件下载服务器端新文件到该目录;
所述下载端根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链。
8.根据权利要求7所述的方法,其特征在于,所述下载端根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链包括:
所述下载端根据新执行的文件变化或目录变化操作计算生成新的目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链;
或者
所述下载端从所述服务器端下载最新目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。
9.一种哈希链构建装置,其特征在于,包括:
构建模块,用于构建文件库状态变化哈希链,所述文件库状态变化哈希链包括:按照顺序相连的第一节点值、中间节点值和链尾节点值,其中,所述链尾节点值为所述文件库状态变化哈希链最新的一个节点值,所述文件库状态变化哈希链随着所述链尾节点值的更新变换不断生长;对当前文件库状态变化数据进行哈希计算,得到所述当前文件库状态变化数据对应的哈希值,将所述当前文件库状态变化数据对应的哈希值与当前链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述链尾节点值,所述当前链尾节点值作为所述中间节点值。
10.根据权利要求9所述的装置,其特征在于,所述文件库状态变化数据包括:
文件库中发生变化的文件或目录的路径和名称;或
文件库中发生变化的文件或目录的路径和名称、变化类型和操作类型,其中,所述变化类型包括:文件或目录,所述操作类型包括:新增、删除或更新;或
文件库中发生变化的文件或目录的路径和名称,以及发生变化的文件数据。
11.一种基于如权利要求9或10所述的装置构建的文件库状态变化哈希链进行文件数据同步系统,其特征在于,包括:
服务器端,用于构建和存储如权利要求9或10所述的装置构建的文件库状态变化哈希链;
下载端,用于同步所述服务器端完整文件库,将本地存储的本地哈希链与所述服务器端哈希链进行比对,确定相同的哈希链节点,执行所述服务器端哈希链中相同节点后续的新节点操作,获取文件库状态变化数据,包括获取发生变化的文件或目录的路径和名称,如果是新增操作,下载服务器端最新文件或目录到下载端;如果是删除操作,执行相同目录下文件或目录删除操作;如果是更新操作,删除旧文件下载最新文件到该目录;根据执行的文件变化或目录变化更新本地哈希链。
12.根据权利要求11所述的系统,其特征在于,所述下载端通过如下方式根据执行的文件变化或目录变化更新本地哈希链:
所述下载端,具体用于根据新执行的文件变化或目录变化操作计算生成新的哈希链,更新本地哈希链;或者从所述服务器端下载最新哈希链,更新本地哈希链。
13.一种哈希链构建装置,其特征在于,包括:
构建模块,用于构建目录变化哈希链和文件变化哈希链;其中,所述目录变化哈希链包括:按照顺序相连的目录第一节点值、目录中间节点值和目录链尾节点值,其中,所述目录链尾节点值为所述目录变化哈希链最新的一个节点值,所述目录变化哈希链随着所述目录链尾节点值的更新变换不断生长,对目录变化数据进行哈希计算,得到所述目录变化数据对应的哈希值,将所述当前目录变化数据对应的哈希值与当前目录链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述目录链尾节点值,所述当前目录链尾节点值作为所述目录中间节点值;所述文件变化哈希链包括:按照顺序相连的文件第一节点值、文件中间节点值和文件链尾节点值,其中,所述文件链尾节点值为所述文件变化哈希链最新的一个节点值,所述文件变化哈希链随着所述文件链尾节点值的更新变换不断生长,对文件变化数据进行哈希计算,得到所述文件变化数据对应的哈希值,将所述当前文件变化数据对应的哈希值与当前文件链尾节点值进行哈希计算得到新的哈希值,将所述新的哈希值作为所述文件链尾节点值,所述当前文件链尾节点值作为所述文件中间节点值。
14.根据权利要求13所述的装置,其特征在于,所述目录变化数据至少包括文件库中发生变化的目录的路径和名称;所述文件变化数据至少包括文件库中发生变化的文件的路径和名称。
15.一种基于如权利要求13或14所述的装置构建的文件库状态变化哈希链进行文件数据同步系统,其特征在于,包括:
服务器端,用于构建和存储如权利要求13或14所述的装置构建的文件库状态变化哈希链,包括目录变化哈希链和文件变化哈希链;
下载端,用于同步所述服务器端完整文件库,将本地存储的本地目录变化哈希链与所述服务器端目录变化哈希链进行比对,确定相同的目录变化哈希链节点,执行所述服务器端目录哈希链中相同节点后续的新节点操作,获取目录变化数据,包括获取发生变化目录的路径和名称,如果是新增操作,下载服务器端最新目录到下载端;如果是删除操作,执行相同目录下目录删除操作;如果判断存在目录下文件更新,则获取该变化目录下文件变化哈希链,将本地存储的本地文件变化哈希链与所述服务器端文件变化哈希链进行比对,确定相同的文件变化哈希链节点,执行服务器端文件变化哈希链中相同节点后续的新节点操作,获取文件变化数据,包括获取发生变化文件的路径以及文件名,如果是新增操作,下载服务器端最新文件到下载端;如果是删除操作,执行相同目录下文件删除操作;如果是更新操作,删除旧文件下载服务器端新文件到该目录;根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链。
16.根据权利要求15所述的方法,其特征在于,所述下载端通过如下方式根据执行的文件变化或目录变化更新本地目录变化哈希链和/或文件变化哈希链:
所述下载端,具体用于根据新执行的文件变化或目录变化操作计算生成新的目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链;或者从所述服务器端下载最新目录变化哈希链和/或文件变化哈希链,更新本地目录变化哈希链和/或文件变化哈希链。
CN202110360749.7A 2021-03-01 2021-04-02 一种哈希链构建及文件数据同步方法、装置及系统 Active CN113114749B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021102244034 2021-03-01
CN202110224403 2021-03-01

Publications (2)

Publication Number Publication Date
CN113114749A true CN113114749A (zh) 2021-07-13
CN113114749B CN113114749B (zh) 2023-06-06

Family

ID=76713546

Family Applications (5)

Application Number Title Priority Date Filing Date
CN202310031163.5A Pending CN116155507A (zh) 2021-03-01 2021-04-02 一种报文哈希链的构建方法
CN202310076478.1A Pending CN116094731A (zh) 2021-03-01 2021-04-02 一种基于报文哈希链的签名认证方法及系统
CN202110360749.7A Active CN113114749B (zh) 2021-03-01 2021-04-02 一种哈希链构建及文件数据同步方法、装置及系统
CN202110360757.1A Pending CN113114472A (zh) 2021-03-01 2021-04-02 一种基于报文哈希链的认证方法及系统
CN202110360263.3A Pending CN113114471A (zh) 2021-03-01 2021-04-02 一种报文哈希链的构建方法及装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202310031163.5A Pending CN116155507A (zh) 2021-03-01 2021-04-02 一种报文哈希链的构建方法
CN202310076478.1A Pending CN116094731A (zh) 2021-03-01 2021-04-02 一种基于报文哈希链的签名认证方法及系统

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN202110360757.1A Pending CN113114472A (zh) 2021-03-01 2021-04-02 一种基于报文哈希链的认证方法及系统
CN202110360263.3A Pending CN113114471A (zh) 2021-03-01 2021-04-02 一种报文哈希链的构建方法及装置

Country Status (1)

Country Link
CN (5) CN116155507A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114125080A (zh) * 2021-09-29 2022-03-01 北京信息科技大学 一种报文链终端协议栈构建方法和解析方法、装置及终端

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553431A (zh) * 2022-01-27 2022-05-27 北京信息科技大学 一种具有记忆功能的通信方法及装置
CN114726543B (zh) * 2022-04-12 2023-07-18 北京信息科技大学 基于报文链的密钥链生成、报文发送及接收方法及装置
CN116055065B (zh) * 2023-03-30 2023-06-20 中国民航大学 一种基于树链混合的ads-b数据安全认证方法
CN116319112B (zh) * 2023-05-24 2023-09-22 中国人民解放军军事科学院系统工程研究院 一种报文完整性验证方法及系统
CN116702230A (zh) * 2023-08-08 2023-09-05 天津市城市规划设计研究总院有限公司 城市规划领域保证数据一致性的方法及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129616A1 (en) * 2004-12-10 2006-06-15 Mien-Chih Chen System and method for synchronizing computer files between a local computer and a remote server
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和系统
CN102946410A (zh) * 2012-10-15 2013-02-27 北京奇虎科技有限公司 网络同步方法和装置
US20130304705A1 (en) * 2012-05-11 2013-11-14 Twin Peaks Software, Inc. Mirror file system
CN110177142A (zh) * 2019-05-24 2019-08-27 无锡华云数据技术服务有限公司 一种数据同步方法、装置及电子设备
CN111523151A (zh) * 2020-04-21 2020-08-11 贵州大学 一种基于区块链技术来保存电子数据的方法及其系统
CN111831997A (zh) * 2020-06-18 2020-10-27 华东师范大学 一种客户端与数据库之间建立可信关系的方法
CN111884949A (zh) * 2020-08-05 2020-11-03 支付宝(杭州)信息技术有限公司 Ab实验的分流方案确定、分流实现方法、装置及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888449A (zh) * 2014-03-05 2014-06-25 亿赞普(北京)科技有限公司 一种报文重组方法和装置
CN107040509B (zh) * 2016-11-23 2019-12-06 杭州迪普科技股份有限公司 一种报文发送方法及装置
KR101948214B1 (ko) * 2018-02-09 2019-02-14 경희대학교 산학협력단 패킷의 무결성을 판단하는 방법
CN109327311B (zh) * 2018-08-03 2021-09-21 克洛斯比尔有限公司 一种哈希时间戳创建方法、设备及可读存储介质
JP7277912B2 (ja) * 2019-06-06 2023-05-19 株式会社ワイビーエム ハッシュチェーン利用データ非改ざん証明システム及びそのためのデータ管理装置
CN110650018A (zh) * 2019-09-06 2020-01-03 南京南瑞继保工程技术有限公司 一种报文防篡改方法和装置
CN111726224A (zh) * 2020-05-13 2020-09-29 北京信息科技大学 一种基于量子保密通信的数据完整性快速认证方法、系统、终端及存储介质
CN112307511A (zh) * 2020-11-06 2021-02-02 珠海格力电器股份有限公司 文件防护方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129616A1 (en) * 2004-12-10 2006-06-15 Mien-Chih Chen System and method for synchronizing computer files between a local computer and a remote server
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和系统
US20130304705A1 (en) * 2012-05-11 2013-11-14 Twin Peaks Software, Inc. Mirror file system
CN102946410A (zh) * 2012-10-15 2013-02-27 北京奇虎科技有限公司 网络同步方法和装置
CN110177142A (zh) * 2019-05-24 2019-08-27 无锡华云数据技术服务有限公司 一种数据同步方法、装置及电子设备
CN111523151A (zh) * 2020-04-21 2020-08-11 贵州大学 一种基于区块链技术来保存电子数据的方法及其系统
CN111831997A (zh) * 2020-06-18 2020-10-27 华东师范大学 一种客户端与数据库之间建立可信关系的方法
CN111884949A (zh) * 2020-08-05 2020-11-03 支付宝(杭州)信息技术有限公司 Ab实验的分流方案确定、分流实现方法、装置及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114125080A (zh) * 2021-09-29 2022-03-01 北京信息科技大学 一种报文链终端协议栈构建方法和解析方法、装置及终端

Also Published As

Publication number Publication date
CN113114749B (zh) 2023-06-06
CN113114472A (zh) 2021-07-13
CN116094731A (zh) 2023-05-09
CN113114471A (zh) 2021-07-13
CN116155507A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN113114749A (zh) 一种哈希链构建及文件数据同步方法、装置及系统
CN106055597B (zh) 数字交易系统、及用于其的账户信息查询方法
US11531535B2 (en) Firmware upgrade method and apparatus, and terminal
CN113760971B (zh) 用于检索图数据库的数据的方法、计算设备和存储介质
CN105160253B (zh) 修复客户端程序的方法、装置、系统及服务器
CN110599169A (zh) 数据处理方法、装置、终端及介质
CN110535776B (zh) 网关限流方法、装置、网关、系统及存储介质
CN113553373B (zh) 数据同步方法及装置、存储介质及电子设备
CN115756634A (zh) 数据库对象关系映射模型建立方法、装置、设备及介质
CN106250548A (zh) 一种代码更新方法
JP4951138B2 (ja) データベースの管理方法
CN107368513A (zh) 客户端数据库更新的方法及装置
CN116954685B (zh) 低代码应用系统灰度滚动升级方法、系统、设备及介质
CN112182328A (zh) 一种搜索引擎的扩容方法、装置、电子设备及存储介质
CN112416388A (zh) 智能移动终端软件升级方法及其升级控制系统
CN110692078B (zh) 基于区块链的交易数据处理方法、设备和存储介质
JP3772701B2 (ja) 回路図接続情報出力方式及び回路図接続情報出力方法
CN111586170B (zh) 资源下载方法、装置、设备及计算机可读存储介质
CN112003736A (zh) 一种多节点配置信息确定方法、装置及存储介质
CN117312264B (zh) 虚拟磁盘系统中的文件同步方法、系统、设备及介质
CN108173888A (zh) 一种分布式系统的软件升级方法、装置及系统
CN112988905B (zh) 用于集群部署的节点内存同步方法及装置
CN113364875B (zh) 区块链节点存取数据的方法、设备和计算机可读存储介质
JP4106601B2 (ja) ディレクトリ情報への更新情報生成システム、更新情報生成プログラム
CN113805930A (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