CN111984613B - 一种共享文件的方法、装置和系统 - Google Patents
一种共享文件的方法、装置和系统 Download PDFInfo
- Publication number
- CN111984613B CN111984613B CN202010772432.XA CN202010772432A CN111984613B CN 111984613 B CN111984613 B CN 111984613B CN 202010772432 A CN202010772432 A CN 202010772432A CN 111984613 B CN111984613 B CN 111984613B
- Authority
- CN
- China
- Prior art keywords
- hash value
- file
- current
- current hash
- acquiring
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000006835 compression Effects 0.000 claims abstract description 183
- 238000007906 compression Methods 0.000 claims abstract description 182
- 238000004590 computer program Methods 0.000 claims description 10
- 239000000758 substrate Substances 0.000 claims 4
- 239000000523 sample Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种共享文件的方法、装置和系统,涉及计算机技术领域。该方法的一具体实施方式包括:获取待共享的文件,对形成的文件压缩包执行区块链上链操作并获取相应的第一哈希值,成对选择第一哈希值上链并获取相应的当前哈希值;经过循环获取根哈希值。基于根哈希值,遍历二叉树结构节点的哈希值,获取文件压缩包中的共享文件;通过采用将多个文件压缩成文件压缩包,部分克服了因为文件数量大造成的网络资源负担过高的技术问题,通过将各个文件压缩包并发上链,提高了文件上链和共享的效率;利用二叉树结构存储并分享根哈希值,通过根哈希值以及各个节点哈希值获取共享文件,提高文件的安全性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种共享文件的方法、装置和系统。
背景技术
在企业的业务流程中,往往需要共享业务所需要的文件,尤其是涉及到企业与企业之间的业务,随着区块链技术的发展,企业之间可以基于区块链共享文件,所采用的方法主要有:1.将所有的共享文件当作交易上链并进行广播实现共享,2.将文件保存在中心化数据库中,将文件的电子存证上链并进行广播实现共享。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
利用方法1的方法,当文件的数量较大时,造成网络资源的使用率过高从而导致文件上链的效率减低;方法2,利用中心化的数据库保存文件,当文件为安全性较高的文件时,会存在一定的安全风险。
发明内容
有鉴于此,本发明实施例提供一种共享文件的方法和装置,能够获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;将所述当前哈希值作为根哈希值,并发送所述哈希值;所述各个层级的哈希值形成二叉树结构。根据所述根哈希值,获取两个当前哈希值,经过循环执行,直至获取到所述每一个当前哈希值所对应的文件压缩包;进而获取文件压缩包中的共享文件;因为采用将多个文件压缩成文件包的技术手段,部分克服了因为文件数量大造成的网络资源负担过高的技术问题,通过将各个文件压缩包并发上链,提高了文件上链和共享的效率;利用二叉树结构存储哈希值,分享根哈希值进而获取共享文件,提高了共享文件的安全性。
为实现上述目的,根据本发明实施例的第一方面,提供了一种共享文件的方法,其特征在于,包括:获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;将所述当前哈希值作为根哈希值,并发送所述哈希值。
可选地,所述共享文件的方法,其特征在于,
当所述当前哈希值的数量是偶数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在各个所述当前哈希值均被选择过的情况下,将所述第二哈希值作为所述当前哈希值。
可选地,所述共享文件的方法,其特征在于,
当所述当前哈希值的数量是非1的奇数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在未被选择的所述当前哈希值为1的情况下,将所述第二哈希值和所述未被选择的1个所述当前哈希值作为所述当前哈希值。
可选地,所述共享文件的方法,其特征在于,
获取待共享的文件,形成至少两个文件压缩包,包括:
获取预定义时间范围内待共享的文件,形成至少两个文件包,根据网络带宽,确定所述文件包中文件的数量。
可选地,所述共享文件的方法,其特征在于,
分别对所述文件包执行压缩和加密操作,形成所述文件压缩包。
可选地,所述共享文件的方法,其特征在于,
对所述文件压缩包执行区块链并发上链操作。
为实现上述目的,根据本发明实施例的第二方面,提供了一种共享文件的方法,其特征在于,包括:接收当前哈希值;循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
可选地,所述共享文件的方法,其特征在于,
获取到所述当前哈希值所对应的文件压缩包,包括:
获取所述当前哈希值所对应文件压缩包,对所述文件压缩包执行解压和解密操作,获取文件压缩包中的文件。
为实现上述目的,根据本发明实施例的第三方面,提供了一种共享文件的装置,其特征在于,包括:文件压缩包上链模块、节点哈希值获取模块和根哈希值获取模块;其中,
所述文件压缩包上链模块,用于获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;
所述节点哈希值获取模块,用于将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;
所述根哈希值获取模块,用于将所述当前哈希值作为根哈希值,并发送所述哈希值。
可选地,所述共享文件的装置,其特征在于,
当所述当前哈希值的数量是偶数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在各个所述当前哈希值均被选择过的情况下,将所述第二哈希值作为所述当前哈希值。
可选地,所述共享文件的装置,其特征在于,
当所述当前哈希值的数量是非1的奇数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在未被选择的所述当前哈希值为1的情况下,将所述第二哈希值和所述未被选择的1个所述当前哈希值作为所述当前哈希值。
可选地,所述共享文件的装置,其特征在于,
获取待共享的文件,形成至少两个文件压缩包,包括:
获取预定义时间范围内待共享的文件,形成至少两个文件包,根据网络带宽,确定所述文件包中文件的数量。
可选地,所述共享文件的装置,其特征在于,
分别对所述文件包执行压缩和加密操作,形成所述文件压缩包。
可选地,所述共享文件的装置,其特征在于,
对所述文件压缩包执行区块链并发上链操作。
为实现上述目的,根据本发明实施例的第四方面,还提供了一种共享文件的装置,其特征在于,包括:获取共享文件模块;其中,
所述获取共享文件模块,用于接收当前哈希值;循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
可选地,所述共享文件的装置,其特征在于,
获取到所述当前哈希值所对应的文件压缩包,包括:
获取所述当前哈希值所对应文件压缩包,对所述文件压缩包执行解压和解密操作,获取文件压缩包中的文件。
为实现上述目的,根据本发明实施例的第五方面,提供了一种共享文件的系统900,包含上述第三方面提供的共享文件的装置700、以及上述第四方面提供的共享文件的装置800。
为实现上述目的,根据本发明实施例的第六方面,提供了一种共享文件的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述共享文件的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的第七方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述共享文件的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;将所述第二哈希值作为所述当前哈希值;将所述当前哈希值作为根哈希值,并发送所述哈希值;所述各个层级的哈希值形成二叉树结构。
根据所述根哈希值,获取两个当前哈希值,经过循环执行,直至获取到所述每一个当前哈希值所对应的文件压缩包;进而获取文件压缩包中的共享文件。
因为采用将多个文件压缩成文件包的技术手段,部分克服了因为文件数量大造成的网络资源负担过高的技术问题,通过将各个文件压缩包同时上链,提高了文件上链和共享的效率;利用二叉树结构存储哈希值,并分享根哈希值进而获取共享文件,提高了共享文件的安全性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一个实施例提供的一种存储共享文件的方法的流程示意图;
图2是本发明一个实施例提供的一种获取共享文件的流程示意图;
图3是本发明第一实施例提供的一种利用二叉树结构存储共享文件哈希值示意图;
图4是本发明第二实施例提供的一种利用二叉树结构存储共享文件哈希值示意图;
图5是本发明一个实施例提供的一种获取共享文件的流程示意图;
图6是本发明一个实施例提供的一种共享文件的流程示意图;
图7是本发明一个实施例提供的一种共享文件的装置的结构示意图;
图8是本发明一个实施例提供的一种获取共享文件的装置的结构示意图;
图9是本发明一个实施例提供的一种获取共享文件的系统的结构示意图;
图10是本发明实施例可以应用于其中的示例性系统架构图;
图11是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本发明实施例提供了一种存储共享文件的方法,该方法可以包括以下步骤:
步骤S101:获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值。
具体地,待共享的文件为某电子银行产生的交易文件、电子银行产生的对账单文件、电子商城产生的订单文件等;进一步地,获取待共享的文件,形成至少两个文件压缩包,包括:获取预定义时间范围内待共享的文件,形成至少两个文件包,根据网络带宽,确定所述文件包中文件的数量。具体地,可以根据一个时间范围内所接收的共享文件的数量,确定预定义时间范围,从而根据时间范围形成合理的文件接收数量,例如,一个小时之内某电子银行产生的交易文件、一个小时之内某两个电子银行产生的对账单文件、一天之内电子商城产生的订单文件等,所述预定义时间范围可以根据业务的场景和产生文件的数量来设定,例如,一天、一小时、一分钟等。
进一步地,获取待共享的文件,例如获取预定义时间范围内待共享的文件,形成至少两个文件包,具体地,根据网络带宽,确定每个所述文件包中文件的数量,并分别形成至少两个文件压缩包;获取所述预定义时间范围内产生的文件的数量、结合网络的带宽等因素,对所述文件划分形成多个文件包,并分别对文件包进行压缩操作,分别形成文件压缩包;所述文件包中包含的文件数量根据文件的尺寸而设定,因此文件包中的数量是可变的,例如:不同电子银行之间的对账单文件等通过获取网络的带宽确定每个文件包中包含文件的数量,进一步地,进行对文件包进行压缩形成多个文件压缩包,压缩的方法可以使用压缩工具,例如:gzip、winRAR等,本发明对压缩所使用的具体方法不做限定。
进一步地,分别对所述文件包执行压缩和加密操作,形成所述文件压缩包。其中,形成至少两个文件压缩包还包括在执行压缩操作以及加密操作,通过加密提高了文件的安全性,尤其是提高了对安全性要求高的例如电子银行之间的对账单等文件的安全性,加密的方法可以使用压缩软件进行加密,也可使用操作系统或加密软件进行加密,本发明对压缩、加密的具体方法不做限定。
再进一步地,对各个文件压缩包执行区块链并发上链操作,因为各个文件压缩包之间不具有依赖交易关系,执行文件压缩包的并发上链操作;即,对所述文件压缩包执行区块链并发上链操作。可以理解的是,由于存在网络的带宽等资源的限制,多个文件压缩包的上链操作可以是分批进行的,每一批内文件压缩包执行并发上链,通过同时上链的操作,提高了文件上链的效率;进一步地,对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;其中,可以将文件压缩包作为交易执行区块链上链操作,并从区块链获取针对该交易返回的哈希值,该哈希值即为所述文件压缩包的第一哈希值,也即文件压缩包对应的第一哈希值,即,并从区块链获取所述文件压缩包对应的第一哈希值;进一步地,所使用的区块链可以是联盟链、私有链等,本发明对区块链的类型不做限定。本发明对执行区块链上链所使用的具体工具或者方法不做限定。
步骤S102:将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值;对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值。
具体地,根据步骤S101所形成的各个文件压缩包对应的第一哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作;具体地,基于选择出的一对当前哈希值生成中间哈希值可以将两个(一对)当前哈希值进行组合生成中间哈希值,也可以通过两个(一对)当前哈希值的计算生成中间哈希值,本发明对基于一对当前哈希值生成中间哈希值的具体方法不做限定。即,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作;并从区块链获取对应的第二哈希值,其中,可以将中间哈希值作为交易执行上链操作,并从区块链获取针对该交易返回的哈希值,该哈希值即为所述的第二哈希值;经过循环,进行各层级的第二哈希值(即当前哈希值)的类似操作直到获取根哈希值。
在循环过程中,将所述第一哈希值、第二哈希值作为当前哈希值;可以理解的是,根据上述描述,经过循环获取每个层级的哈希值,直到获取唯一的根哈希值(即,直至所述当前哈希值的数量为1),所述第一哈希值、各个层级的第二哈希值形成一个二叉树的哈希值存储结构。通过上述方法,提高了获取文件的复杂度,从而提高了文件的安全性。
获取根哈希值可以采用两种方法:第一种方法的描述与图3中所示的示例的步骤S301-步骤S303一致;第二种方法与图4中所示的示例的步骤S401-步骤S404的描述一致,在此不再赘述。
步骤S103:将所述当前哈希值作为根哈希值,并发送所述哈希值。
具体地,根据步骤S102描述的二叉树的存储结构,经过循环,获取根哈希值,发送所述根哈希值。
进一步地,发送所述根哈希值有两种方法:1)通过区块链发送所述根哈希值给有获取共享文件权限的获取方;2)通过其他方式发送所述根哈希值给有获取共享文件权限的获取方,例如:官方电子邮件等。可以理解的是,将所述根哈希值发送给有获取共享文件权限的获取方,所述有权限的获取方可以是一方或者多方;例如:所述文件为银行A和银行B在预定义时间范围内产生的对账单;在步骤S101-步骤S103之后产生了根哈希值,则将所述根哈希值发送给对这些对账单文件有获取权限的银行A和银行B;显而易见地是,利用该操作进一步提高了文件的安全性。
如图2所示,本发明实施例提供了一种获取共享文件的方法,该方法可以包括以下步骤:
步骤S201:接收当前哈希值;循环执行以下步骤,直至获取到所当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
具体地,根据所述根哈希值,循环执行从区块链上获取各个所述文件压缩包哈希值对应的文件压缩包中文件的方法的描述与步骤S501-步骤S503所描述的示例一致,在此不再赘述。
如图3所示,本发明实施例提供了一种利用二叉树结构存储共享文件以及哈希值的方法,该方法可以包括以下步骤:
步骤S301:获取各个文件压缩包对应的第一哈希值;
关于生成文件压缩包以及获取对应的第一哈希值的描述与步骤S101一致,在此不再赘述;如图3所示,将文件压缩包1-文件压缩包4执行区块链上链操作,分别获取对应的第一哈希值1-第一哈希值4。
步骤S302:成对选择第一哈希值,对选择出的一对所述当前哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值,将所述第二哈希值作为所述当前哈希值;将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值。
具体地,步骤S302描述了通过循环获取各个层级的第二哈希值(并将第二哈希值作为当前哈希值)的过程如图3所示,示例中利用3个层级描述不同层级的哈希值,分别为层级1、层级2、层级3。在循环执行之前,首先将所述至少两个第一哈希值作为当前哈希值,然后基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;如图3所示,基于文件压缩包1的第一哈希值1(当前哈希值)和文件压缩包2的第一哈希值2(当前哈希值)生成中间哈希值,对所述中间哈希值执行区块链上链操作,从区块链获取对应的第二哈希值(例如第二哈希值1);基于文件压缩包3的第一哈希值3和文件压缩包4的第一哈希值4生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值(例如第二哈希值2);并将所述第二哈希值分别作为所述当前哈希值;其中,可以将中间哈希值作为交易执行上链操作,并得到针对该交易返回的哈希值作为第二哈希值。即,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值。
进一步地,判断当前哈希值的数量是否为1,由上述示例可知,当前哈希值(第二哈希值)的数量不为1,则执行步骤S302;基于层级2的第二哈希值1(当前哈希值)和第二哈希值2(当前哈希值)生成中间哈希值;对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值,即获取层级3的第二哈希值(当前哈希值)。再次判断当前哈希值的数量是否为1,可知当前哈希值的数量为1,则将所述当前哈希值作为根哈希值。
可以理解的是,基于二叉树结构的每个层级的当前哈希值的数量可以是奇数,也可以是偶数;当所述当前哈希值的数量是偶数时,从所述至少两个当前哈希值中,成对选择当前哈希值,对选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在各个所述当前哈希值均被选择过的情况下,将所述第二哈希值作为所述当前哈希值。
具体地,如图3所示的示例,层级1包含的当前哈希值(第一哈希值)为偶数(4个),例如,基于第一哈希值1和第一哈希值2生成中间哈希值,对所述中间哈希值执行区块链上链操作并获取第二哈希值1;基于第一哈希值3和第一哈希值4生成中间哈希值,对所述中间哈希值执行区块链上链操作并获取第二哈希值2;其中,第一哈希值1和第一哈希值2为成对选择;第一哈希值3和第一哈希值4也为成对选择;其中,第一哈希值1、第一哈希值2、第一哈希值3和第一哈希值4作为当前哈希值;由此可见,在各个所述当前哈希值(第一哈希值1、第一哈希值2、第一哈希值3和第一哈希值4均被选择)均被选择过的情况下,将所述第二哈希值(第二哈希值1、第二哈希值2)作为所述当前哈希值;基于当前哈希值获取到的层级2的第二哈希值的数量为偶数(2个),即,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值,在各个所述当前哈希值均被选择过的情况下,将所述第二哈希值作为所述当前哈希值。
当所述当前哈希值的数量是非1的奇数时的描述与步骤S401-步骤S404一致,在此不再赘述。
步骤S303:获取根哈希值,发送所述根哈希值。
具体地,当所述当前哈希值的数量为1时,将所述当前哈希值作为根哈希值,并发送所述哈希值。发送所述根哈希值的具体描述与步骤S103一致,在此不再赘述。可以理解的是,二叉树的层级由文件压缩包哈希值的数量的确定;而文件压缩包哈希值的数量根据产生的业务相关的文件数量相关,本发明对文件压缩包哈希值的数量不做限定。
如图4所示,本发明实施例提供了一种利用二叉树结构存储共享文件以及哈希值的方法,该方法可以包括以下步骤:
步骤S401:获取各个文件压缩包对应的第一哈希值。
关于生成文件压缩包以及获取对应的第一哈希值的描述与步骤S101一致,在此不再赘述;如图4所示,分别将文件压缩包1-文件压缩包5执行区块链上链操作并获取对应的第一哈希值1-第一哈希值5。
步骤S402:成对选择第一哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值,将所述第二哈希值作为所述当前哈希值。
步骤S403:判断当前哈希值的数量不为1,则执行步骤S402。
具体地,步骤S402-步骤S403描述了通过循环获取各层的第二哈希值(当前哈希值)的过程如图4所示;在循环执行之前,首先将所述至少两个第一哈希值作为当前哈希值,然后成对选择所述当前哈希值(第一哈希值),基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;进一步地,基于二叉树结构的每个层级的当前哈希值的数量可以是奇数,也可以是偶数;当所述当前哈希值的数量是非1的奇数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在未被选择的所述当前哈希值数量为1的情况下,将所述第二哈希值和所述未被选择的1个所述当前哈希值作为所述当前哈希值。
如图4所示,对选择出的一对所述当前哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值,例如:将文件压缩包1的第一哈希值1(当前哈希值)和文件压缩包2的第一哈希值2(当前哈希值)生成中间哈希值,对所述中间哈希值执行区块链上链操作并获取对应的第二哈希值,即,获取第二哈希值1;再例如:基于文件压缩包3的第一哈希值3和文件压缩包4的第一哈希值4基生成中间哈希值,对所述中间哈希值执行区块链上链操作并从区块链获取对应的第二哈希值,例如获取第二哈希值2;第一哈希值5(当前哈希值)为在未被选择的所述当前哈希值;并且是未被选择的所述当前哈希值数量为1的情况,则将所述第二哈希值和所述未被选择的1个所述当前哈希值作为所述当前哈希值,即,将第二哈希值1、第二哈希值2、第一哈希值5作为当前哈希值。
进一步地,判断当前哈希值的数量是否为1,由上述示例可知,当前哈希值(第二哈希值)的数量不为1(为3),则执行步骤S402;进一步地,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作并从区块链获取对应的第二哈希值,例如:基于第二哈希值1(当前哈希值)和第一哈希值5(当前哈希值)生成中间哈希值,对所述中间哈希值执行区块链上链操作并从区块链获取对应的第二哈希值,例如获取第二哈希值2(当前哈希值);进一步地,由图4可知,第二哈希值1(当前哈希值)为在未被选择的所述当前哈希值;并且是未被选择的所述当前哈希值数量为1的情况,则将所述第二哈希值(第二哈希值2)和所述未被选择的1个所述当前哈希值(第二哈希值1)作为所述当前哈希值;循环地,再次判断当前哈希值的数量是否为1,可知当前哈希值的数量为1,则将所述当前哈希值作为根哈希值。
即,将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值。
步骤S404:发送所述根哈希值。
具体地,当前哈希值的数量为1时,将所述当前哈希值作为根哈希值,并发送所述哈希值。发送所述根哈希值的具体描述与步骤S103一致,在此不再赘述。可以理解的是,二叉树的层级由文件压缩包哈希值的数量的确定;而文件压缩包哈希值的数量根据产生的业务相关的文件数量相关,本发明对文件压缩包哈希值的数量不做限定。
如图5所示,本发明实施例提供了一种基于二叉树结构的哈希值获取共享文件的方法,该方法可以包括以下步骤:
步骤S501:接收当前哈希值。
具体地,当前哈希值即为根哈希值。
步骤S502-步骤S503:获取文件压缩包。
具体地,循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
如图5所示示例,获取当前哈希值(根哈希值),确定所述区块链上存在与所述当前哈希值(根哈希值)相同的文件压缩包哈希值,可知不存在与所述当前哈希值(根哈希值)相同的文件压缩包哈希值,则执行A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值,即,确定当前哈希值(根哈希值)对应的两个下级哈希值,分别为下级哈希值1和下级哈希值2;并将所述下级哈希值(下级哈希值1和下级哈希值2)作为所述当前哈希值。
循环判断确定所述区块链上存在与所述当前哈希值(下级哈希值1和下级哈希值2)相同的文件压缩包哈希值;如图5所示,对于下级哈希值1、下级哈希值2不存在与所述当前哈希值(下级哈希值1和下级哈希值2)相同的文件压缩包哈希值,则执行A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值;确定当前哈希值(层级2:下级哈希值1)对应的两个下级哈希值分别为下级哈希值1和下级哈希值2;循环判断确定所述区块链上存在与所述当前哈希值(层级1:下级哈希值1和下级哈希值2)相同的文件压缩包哈希值;则执行A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;即,分别获取下级哈希值1(层级1)对应的文件压缩包1;以此类推,获取某一个或者每一个文件压缩包。
再进一步地,对每个获取到的文件压缩包,执行解压和解密操作,解压和解密的方法与压缩和加密的方法相互呼应;即,获取到所述当前哈希值所对应的文件压缩包,包括:获取所述当前哈希值所对应文件压缩包,对所述文件压缩包执行解压和解密操作,获取文件压缩包中的文件。
可以理解的是,二叉树的层级由文件压缩包哈希值的数量的确定;而文件压缩包哈希值的数量根据产生的业务相关的文件数量相关,本发明对文件压缩包哈希值的数量不做限定。
如图6所示,本发明实施例提供了一种共享文件的流程,该流程包括以下步骤:
如图6所示的示意流程,利用步骤S601-步骤S603描述共享文件上链的过程;利用步骤S604描述共享文件获取方获取共享文件的过程;例如,执行共享文件上链的可以是银行总部,共享文件获取方可以是在业务上与共享文件直接相关的企业,例如:银行1、银行2、银行3等。
步骤S601:获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值。
具体地,关于文件压缩包的形成以及上链的描述与步骤S101一致,在此不再赘述;进一步地,获取待共享的文件,形成至少两个文件压缩包,包括:获取预定义时间范围内待共享的文件,形成至少两个文件包,根据网络带宽,确定所述文件包中文件的数量。分别对所述文件包执行压缩和加密操作,形成所述文件压缩包。对所述文件压缩包执行区块链并发上链操作。
步骤S602:将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值。
具体地,关于经过循环获取根哈希值的描述与步骤S102一致,在此不再赘述。
步骤S603:将所述当前哈希值作为根哈希值,并发送所述哈希值。
具体地,关于发送根哈希值的描述与步骤S103一致,在此不再赘述。
步骤S604:接收当前哈希值;循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
具体地,关于根据根哈希值,获取所述根哈希值对应的两个下级哈希值的描述与步骤S201一致,在此不再赘述;进一步地,获取到所述当前哈希值所对应的文件压缩包,包括:获取所述当前哈希值所对应文件压缩包,对所述文件压缩包执行解压和解密操作,获取文件压缩包中的文件。
如图7所示,本发明实施例提供了一种共享文件的装置700,包括:包括:文件压缩包上链模块701、节点哈希值获取模块702和根哈希值获取模块703;其中,
所述文件压缩包上链模块701,用于获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;
所述节点哈希值获取模块702,用于将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;
所述根哈希值获取模块703,用于将所述当前哈希值作为根哈希值,并发送所述哈希值。
可选地,所述节点哈希值获取模块702,还包括当所述当前哈希值的数量是偶数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在各个所述当前哈希值均被选择过的情况下,将所述第二哈希值作为所述当前哈希值。
可选地,所述节点哈希值获取模块702,还包括当所述当前哈希值的数量是非1的奇数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值值;在未被选择的所述当前哈希值为1的情况下,将所述第二哈希值和所述未被选择的1个所述当前哈希值作为所述当前哈希值。
可选地,所述文件压缩包上链模块701,还用于获取待共享的文件,形成至少两个文件压缩包,包括:获取预定义时间范围内待共享的文件,形成至少两个文件包,根据网络带宽,确定所述文件包中文件的数量。
可选地,所述文件压缩包上链模块701,还用于分别对所述文件包执行压缩和加密操作,形成所述文件压缩包。
可选地,所述文件压缩包上链模块701,还用于对所述文件压缩包执行区块链并发上链操作。
如图8所示,本发明实施例提供了一种共享文件的装置800,包括:获取共享文件模块801;其中,
所述获取共享文件模块801,用于接收当前哈希值;循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
可选地,所述获取共享文件模块801,还用于获取到所述当前哈希值所对应的文件压缩包,包括:获取所述当前哈希值所对应文件压缩包,对所述文件压缩包执行解压和解密操作,获取文件压缩包中的文件。
本发明实施例还提供了一种共享文件的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
图10示出了可以应用本发明实施例的共享文件的方法或共享文件的装置的示例性系统架构1000。
如图10所示,系统架构1000可以包括终端设备1001、1002、1003,网络1004和服务器1005。网络1004用以在终端设备1001、1002、1003和服务器1005之间提供通信链路的介质。网络1004可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备1001、1002、1003通过网络1004与服务器1005交互,以接收或发送消息等。终端设备1001、1002、1003上可以安装有各种客户端应用,例如企业应用客户端、网页浏览器应用、搜索类应用、即时通信工具和邮箱客户端等。
终端设备1001、1002、1003可以是具有显示屏并且支持运行各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器1005可以是提供各种服务的服务器,例如对用户利用终端设备1001、1002、1003所提出的获取文件的请求提供支持的后台管理服务器。后台管理服务器可以将待共享文件执行上链和存储,针对提出的获取文件的请求进行处理,并将文件返回给终端设备。
需要说明的是,本发明实施例所提供的共享文件的方法一般由服务器1005执行,相应地,共享文件的装置一般设置于服务器1005中。
应该理解,图10中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图11,其示出了适于用来实现本发明实施例的终端设备的计算机系统1100的结构示意图。图11示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图11所示,计算机系统1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。在RAM 1103中,还存储有系统1100操作所需的各种程序和数据。CPU 1101、ROM 1102以及RAM 1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1111上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(CPU)1101执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括文件压缩包上链模块、节点哈希值获取模块和根哈希值获取模块;其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,文件压缩包上链模块还可以被描述为“根据接收到的文件,形成文件压缩包并执行上链操作的模块”。还可以描述为:一种处理器包括获取链上文件模块;其中,所述模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取链上文件模块还可以被描述为“根据文件压缩包哈希值,获取文件压缩包所包含的文件的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;将所述当前哈希值作为根哈希值,并发送所述哈希值。
接收当前哈希值;循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
根据本发明实施例的技术方案,采用将多个文件压缩成文件包的技术手段,部分克服了因为文件数量大造成的网络资源负担过高的技术问题,通过将各个文件压缩包并发上链,提高了文件上链和共享的效率;利用二叉树结构存储哈希值并分享根哈希值进而获取共享文件,提高了共享文件的安全性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (13)
1.一种共享文件的方法,其特征在于,包括:
获取待共享的文件,形成至少两个文件压缩包;
对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;
将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;
将所述当前哈希值作为根哈希值,并发送所述哈希值。
2.根据权利要求1所述的方法,其特征在于,
当所述当前哈希值的数量是偶数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在各个所述当前哈希值均被选择过的情况下,将所述第二哈希值作为所述当前哈希值。
3.根据权利要求1所述的方法,其特征在于,
当所述当前哈希值的数量是非1的奇数时,从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;在未被选择的所述当前哈希值为1的情况下,将所述第二哈希值和所述未被选择的1个所述当前哈希值作为所述当前哈希值。
4.根据权利要求1所述的方法,其特征在于,
获取待共享的文件,形成至少两个文件压缩包,包括:
获取预定义时间范围内待共享的文件,形成至少两个文件包,根据网络带宽,确定所述文件包中文件的数量。
5.根据权利要求4所述的方法,其特征在于,
分别对所述文件包执行压缩和加密操作,形成所述文件压缩包。
6.根据权利要求1所述的方法,其特征在于,
对所述文件压缩包执行区块链并发上链操作。
7.一种根据权利要求1所述的方法实现的获取共享文件的方法,其特征在于,包括:
接收当前哈希值;
循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;
确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;
A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;
A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
8.根据权利要求7所述的方法,其特征在于,
获取到所述当前哈希值所对应的文件压缩包,包括:
获取所述当前哈希值所对应文件压缩包,对所述文件压缩包执行解压和解密操作,获取文件压缩包中的文件。
9.一种共享文件的装置,其特征在于,包括:文件压缩包上链模块、节点哈希值获取模块和根哈希值获取模块;其中,
所述文件压缩包上链模块,用于获取待共享的文件,形成至少两个文件压缩包;对所述至少两个文件压缩包执行区块链上链操作,并从区块链获取所述至少两个文件压缩包分别对应的至少两个第一哈希值;
所述节点哈希值获取模块,用于将所述至少两个第一哈希值作为当前哈希值,循环执行以下操作,直至所述当前哈希值的数量为1:从所述至少两个当前哈希值中,成对选择当前哈希值,基于选择出的一对所述当前哈希值生成中间哈希值,对所述中间哈希值执行区块链上链操作,并从区块链获取对应的第二哈希值;将所述第二哈希值作为所述当前哈希值;
所述根哈希值获取模块,用于将所述当前哈希值作为根哈希值,并发送所述哈希值。
10.一种根据权利要求9所述的装置实现的获取共享文件的装置,其特征在于,包括:获取共享文件模块;其中,
所述获取共享文件模块,用于接收当前哈希值;循环执行以下步骤,直至获取到所述当前哈希值所对应的文件压缩包;确定所述区块链上存在与所述当前哈希值相同的文件压缩包哈希值,如果是,执行A1;否则执行A2;A1:从所述区块链上获取所述当前哈希值所对应的文件压缩包;A2:确定所述当前哈希值对应的两个下级哈希值,并将所述下级哈希值作为所述当前哈希值。
11.一种共享文件的系统,其特征在于,包括:权利要求9所述的共享文件的装置、以及权利要求10所述的获取共享文件的装置。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6或者7-8中任一所述的方法。
13.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6或者7-8中任一所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010772432.XA CN111984613B (zh) | 2020-08-04 | 2020-08-04 | 一种共享文件的方法、装置和系统 |
PCT/CN2021/110599 WO2022028486A1 (zh) | 2020-08-04 | 2021-08-04 | 共享文件的方法、装置和系统 |
EP21852328.0A EP4180984A1 (en) | 2020-08-04 | 2021-08-04 | File sharing method, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010772432.XA CN111984613B (zh) | 2020-08-04 | 2020-08-04 | 一种共享文件的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111984613A CN111984613A (zh) | 2020-11-24 |
CN111984613B true CN111984613B (zh) | 2023-06-16 |
Family
ID=73444497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010772432.XA Active CN111984613B (zh) | 2020-08-04 | 2020-08-04 | 一种共享文件的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111984613B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022028486A1 (zh) * | 2020-08-04 | 2022-02-10 | 中国人民银行数字货币研究所 | 共享文件的方法、装置和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667836A (zh) * | 2018-05-08 | 2018-10-16 | 众安信息技术服务有限公司 | 区块链共识方法 |
CN109101572A (zh) * | 2018-07-17 | 2018-12-28 | 何晓行 | 基于区块链的存证方法、装置及服务器、存储介质 |
CN110032581A (zh) * | 2019-01-18 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务文件存储方法及装置 |
CN111259070A (zh) * | 2019-11-28 | 2020-06-09 | 国网山东省电力公司 | 一种业务数据存储、获取的方法及相关装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190332921A1 (en) * | 2018-04-13 | 2019-10-31 | Vosai, Inc. | Decentralized storage structures and methods for artificial intelligence systems |
-
2020
- 2020-08-04 CN CN202010772432.XA patent/CN111984613B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667836A (zh) * | 2018-05-08 | 2018-10-16 | 众安信息技术服务有限公司 | 区块链共识方法 |
CN109101572A (zh) * | 2018-07-17 | 2018-12-28 | 何晓行 | 基于区块链的存证方法、装置及服务器、存储介质 |
CN110032581A (zh) * | 2019-01-18 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务文件存储方法及装置 |
CN111259070A (zh) * | 2019-11-28 | 2020-06-09 | 国网山东省电力公司 | 一种业务数据存储、获取的方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111984613A (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112150141A (zh) | 一种区块链共识方法、装置和系统 | |
CN113364795B (zh) | 一种数据传输方法和代理服务器 | |
CN110753020A (zh) | 网络请求处理方法和装置 | |
CN110795741B (zh) | 对数据进行安全性处理的方法和装置 | |
CN114826733A (zh) | 文件传输方法、装置、系统、设备、介质以及程序产品 | |
CN111984615B (zh) | 一种共享文件的方法、装置及系统 | |
CN111339206B (zh) | 一种基于区块链的数据共享方法和装置 | |
CN112416396A (zh) | 一种应用程序更新方法和系统 | |
CN111181920A (zh) | 一种加解密的方法和装置 | |
CN111984613B (zh) | 一种共享文件的方法、装置和系统 | |
CN112702229B (zh) | 数据传输方法、装置、电子设备以及存储介质 | |
CN111984614B (zh) | 一种共享文件的方法、装置和系统 | |
CN111984612B (zh) | 一种共享文件的方法、装置和系统 | |
CN111984616B (zh) | 一种更新共享文件的方法、装置和系统 | |
CN111787048A (zh) | 一种终端设备的连接方法、调度服务器及物联网系统 | |
CN115277684A (zh) | 文件传输方法、装置、设备以及存储介质 | |
CN113472785B (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112257039B (zh) | 身份属性添加方法、装置和电子设备 | |
CN113626848A (zh) | 样本数据生成方法、装置、电子设备及计算机可读介质 | |
CN113301058A (zh) | 信息加密传输方法、装置、电子设备和计算机可读介质 | |
CN110166226B (zh) | 一种生成秘钥的方法和装置 | |
CN109657481B (zh) | 数据管理方法及装置 | |
CN111526128B (zh) | 一种加密管理的方法和装置 | |
CN111835846B (zh) | 信息更新方法、装置和电子设备 | |
CN113420331B (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 |