CN112905542A - 一种文件处理方法、装置、服务器、设备及存储介质 - Google Patents
一种文件处理方法、装置、服务器、设备及存储介质 Download PDFInfo
- Publication number
- CN112905542A CN112905542A CN201911223078.9A CN201911223078A CN112905542A CN 112905542 A CN112905542 A CN 112905542A CN 201911223078 A CN201911223078 A CN 201911223078A CN 112905542 A CN112905542 A CN 112905542A
- Authority
- CN
- China
- Prior art keywords
- file
- processed
- data stream
- fragment data
- hash value
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 11
- 239000012634 fragment Substances 0.000 claims abstract description 227
- 238000000034 method Methods 0.000 claims abstract description 89
- 238000004364 calculation method Methods 0.000 claims abstract description 39
- 238000012545 processing Methods 0.000 claims description 109
- 238000012795 verification Methods 0.000 claims description 37
- 238000013467 fragmentation Methods 0.000 claims description 13
- 238000006062 fragmentation reaction Methods 0.000 claims description 13
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 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/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/172—Caching, prefetching or hoarding of files
-
- 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/1727—Details of free space management performed by the file system
-
- 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/602—Providing cryptographic facilities or services
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Human Computer Interaction (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种文件处理方法、装置、设备及存储介质和基于哈希校验的文件校验方法及服务器,将整个待处理文件进行分片,以文件分片数据流的形式读取到本地内存中进行加密以及计算哈希值,在一个文件分片数据流加密完成后,先在本地内存中缓存其哈希值,将密文数据流从本地内存释放,并不存储于本地设备的物理缓存空间,直至在本地设备中完成整个待处理文件的密文的完整哈希值的计算后,再将各个文件分片数据流分片读取到本地内存中,并分别对文件分片数据流进行加密,直接上传至文件接收端,并不依赖存储于本地设备的物理存储空间和本地内存,并且可以基于内存的大小动态调整读取的文件分配数据流的大小,达到内存使用的平衡。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种文件处理方法、装置、设备及存储介质和基于哈希校验的文件校验方法及服务器。
背景技术
云存储是一种网上在线存储的模式,其是将数据存放在由第三方托管的多台虚拟服务器上,需要数据存储托管的一方,通过向其租赁存储空间的方式,满足数据存储需求,由于云存储能满足前端服务器或数据库对数据的访问速度以及对数据访问的实时性,因此,云存储得到了越来越多的用户的认可与应用。
对于本地设备而言,在上传文件至云存储时,需要计算整个文件全部内容的哈希值并上传至云存储,由云存储存储哈希值以对上传的文件进行完整性校验。本地设备计算整个文件全部内容的哈希值时,则需要占用与文件相对应的内存空间。文件越大,所需的内存空间越大,且计算等待的时间越长,若本地设备的内存空间不足,则会导致整个文件的哈希值计算失败的问题。
此外,由于文件托管存储、为了保证数据的安全性,通常在使用存储业务时,业务自身会对文件进行加密后再上传,加密文件处理的过程中会临时占用设备的内存空间和物理存储空间。
发明内容
本申请实施例提供了一种文件处理方法、装置、设备及存储介质和基于哈希校验的文件校验方法及服务器,在整个文件过大时,避免了过多地占用内存空间,以及在本地设备的内存空间不足时,导致整个文件的哈希值计算失败的问题,提高了整个文件的处理效率。
第一方面,本申请实施例提供了一种文件处理方法,其能够从待处理文件读取第1文件分片数据流至第N文件分片数据流至本地内存中,逐一地实现对各个文件分片数据流的哈希值的计算并依次进行迭代得到待处理文件的完整哈希值。现有技术中,在待处理文件过大时,如果本地内存空间充足,其将待处理文件一次性加载到本地内存中进行哈希值计算,此时待处理文件会占用较大的内存空间且等待哈希值计算的时间较长,如果本地内存的内存空间不足,会导致待处理文件的哈希值计算失败,直至等到本地内存的被使用内存空间被释放后,再将待处理文件全部读取到本地内存中进行哈希值计算,如此会拖慢整个待处理文件的处理效率。
因此,采用本申请实施例公开的技术方案,其将整个待处理文件分片为多个文件分片数据流,且分片的多个文件分片数据流的大小是基于本地内存的可用内存空间实现的,将各个文件分片数据流依次读取到本地内存中进行哈希值的迭代计算时,其并不依赖于过大的本地内存空间,且都能满足各个文件分片数据流在本地内存中进行哈希计算时的内存需求,避免了文件加载以及哈希值计算失败。
本申请实施例公开的一种文件处理方法具体包括:
从待处理文件中读取所述待处理文件的第1文件分片数据流至本地内存中,并计算所述第1文件的第1哈希值;
进行循环处理,依次将第m文件分片数据流读取至所述本地内存,并且基于第m-1哈希值及所述第m文件分片数据流计算得到第m哈希值,其中m依次取从2到N的整数,直至完成针对所述第N文件分片数据流的计算,以得到第N哈希值作为所述待处理文件的完整哈希值,其中,所述第1文件分片数据流至所述第N文件分片数据流构成所述待处理文件的完整文件,N为不小于2的整数,m依次取2到N的整数;
基于所述完整哈希值,完成针对所述待处理文件的处理。
在上述第一方面的可能实现中,对于文件处理的方法可以为密文数据流的方法和上传文件的方法,其中,对于上传文件的方法可以分为不加密上传和加密上传。
在上述第一方面的可能实现中,当待处理文件不加密上传时,首先实时监测本地内存的可用内存空间的大小,然后针对可用内存空间的大小,从待处理文件中读取出数据流大小不超过该可用内存空间大小的第1文件分片数据流至本地内存中,完成对第1文件分片数据流的哈希值计算后将第1文件分片数据流的哈希值暂时缓存到本地内存中,完成第1文件分片数据流的哈希值计算后从本地内存中再释放该第1文件分片数据流,然后依序基于本地内存的可用内存空间的大小再从待处理文件中读取出第2文件分片数据流至本地内存中,完成对第2文件分片数据流的哈希值计算后将第2文件分片数据流的哈希值与第1文件分片数据流的哈希值迭代,得到前两个文件分片数据流的哈希值并暂时缓存到本地内存中。
循环以上处理流程,直至迭代计算出待处理文件的完整哈希值后再将完整哈希值上传到文件接收端,然后将上述已经读取完成的各个文件分片数据流依序加载到本地内存中并依序上传到文件接收端,由文件接收端利用完整哈希值对接收到的各个文件分片数据流拼接完成的完整待处理文件进行校验,值得注意的是,如果本地内存的可用内存空间充足,也可以一次性加载待处理文件至本地内存后直接上传到文件接收端。
在上述第一方面的可能实现中,当待处理文件加密上传时,首先实时监测本地内存的可用内存空间的大小,然后针对可用内存空间的大小,从待处理文件中读取出数据流大小不超过该可用内存空间大小的第1文件分片数据流至本地内存中,并对第1文件分片数据流进行加密处理,得到第1加密文件分片数据流,然后对第1加密文件分片数据流进行哈希值计算,完成对第1加密文件分片数据流的哈希值计算后将第1哈希值先暂存到本地内存中将第1加密文件分片数据流释放,然后基于本地内存的可用内存空间的大小再从待处理文件中分片读取第m文件分片数据流至本地内存中,完成对第m文件分片数据流的加密处理,基于第m-1哈希值及处理后的第m加密文件分片数据流的密文流计算第m哈希值,直至完成对N个文件分片数据流的处理,得到加密的待处理文件的密文流的完整哈希值,并将完整哈希值上传到文件接收端。
紧接着是加密后的待处理文件的上传,依序读取上述过程分片完成的文件分片数据流至本地内存中,并依次在本地内存中对N个文件分片数据流进行加密处理后,边加密边将得到的文件分片数据流的密文流直接上传到文件接收端,由文件接收端对接收到的各个文件分片数据流的密文流进行拼接后再利用完整哈希值进行校验。如此,加密处理后的文件分片数据流边加密边直接上传到文件接收端,其并不依赖于本地设备的物理存储空间,避免了对本地设备的物理存储空间的占用以及依赖。
在上述第一方面的可能实现中,文件接收端可以为供待处理文件上传的服务器设备。
在上述第一方面的可能实现中,服务器设备具体为云存储服务器。
在上述第一方面的可能实现中,文件处理的方法可以为加密文件的方法,对于文件加密的方法,首先实时监测本地内存的可用内存空间的大小,然后针对可用内存空间的大小,从待处理文件中读取出数据流大小不超过该可用内存空间大小的第1文件分片数据流至本地内存中,并对第1文件分片数据流进行加密处理,得到第1加密文件分片数据流,然后对第1加密文件分片数据流进行哈希值计算,完成对第1加密文件分片数据流的哈希值计算后将第1哈希值先暂存到本地内存中将第1加密文件分片数据流释放,然后基于本地内存的可用内存空间的大小再从待处理文件中分片读取第m文件分片数据流至本地内存中,完成对第m文件分片数据流的加密处理,基于第m-1哈希值及处理后的第m加密文件分片数据流的密文流计算第m哈希值,直至完成对N个文件分片数据流的处理,得到加密的待处理文件的密文流的完整哈希值,以及完成对整个待处理文件的加密,加密后的整个待处理文件可以缓存到本地设备的物理存储中,并利用完整哈希值进行校验。
在上述第一方面的可能实现中,对待处理文件进行加密处理可以是采用对称加密算法进行加密处理。
在上述第一方面的可能实现中,N个文件分片数据流的大小根据本地内存的可用大小确定,在不同进程的加入,本地内存的可用大小是实时变化的。以待处理文件为文件大小为5GB的视频文件为例,在对视频文件进行读取时,首先监测本地内存的可用大小,若此时本地内存的可用大小为2MB,为了保证对视频文件的处理速度,选择读取视频文件起始的1MB的文件内容至本地内存中参见以上描述的完成该1MB的文件内容的哈希值计算或者加密处理过程。
此后,再监测本地内存的可用大小,若此时本地内存的可用大小为3MB,为了保证对视频文件的处理速度,顺序读取视频文件在1MB之后的2Mb的文件内容至本地内存中参见以上描述的完成该2MB的文件内容的哈希值计算或者加密处理的过程,按以上处理流程循环处理,直至完成对待处理文件的完整哈希值的技术,可以理解的是,读取的文件分片数据流的文件大小也可以与本地内存的可用空间相同。因此,本申请实施例中的文件分片数据流的大小根据本地内存的可用大小是动态调整的,也就是说各个文件分片数据流的大小可以是不等大小的,从而很好的适应本地内存的可用空间,避免了本地内存的可用空间不足导致待处理文件处理失败或者处理速度过慢的问题。
在上述第一方面的可能实现中,为了保证待处理文件分片的均匀性,N个文件分片数据流的大小相等。
在上述第一方面的可能实现中,为了匹配加密算法,避免待处理文件的哈希值迭代计算错误的问题,N个文件分片数据流的大小均为16字节的整数倍,需要注意的是,若待处理文件不能被均分为16字节或者16字节的整数倍,待处理文件的最后一个文件分片数据流可以不为16字节或者16字节的整数倍。
第二方面,本申请实施例公开了一种基于哈希校验的文件校验方法,应用于文件接收端,基于哈希校验的文件校验方法包括:
接收对应于完整的待处理文件的完整哈希值;
接收由所述待处理文件分片而成的N个文件分片数据流,其中,所述N为大于1的整数;
将N个所述文件分片数据流进行拼接,得到所述完整的待处理文件;
利用所述完整哈希值对拼接得到的所述完整的待处理文件进行校验。
在上述第二方面的可能实现中,文件接收端为供待处理文件上传的服务器设备。
在上述第二方面的可能实现中,服务器设备为云存储服务器。
第三方面,本申请实施例公开了一种文件处理的装置,文件处理的装置包括:
读取模块,用于从待处理文件中读取所述待处理文件的第1文件分片数据流至所述本地内存中,并计算所述第1文件的第1哈希值;
循环处理模块,用于进行循环处理,依次将第m文件分片数据流读取至所述本地内存,并且基于第m-1哈希值及所述第m文件分片数据流计算得到第m哈希值,其中m依次取从2到N的整数,直至完成针对所述第N文件分片数据流的计算,以得到第N哈希值作为所述待处理文件的完整哈希值;其中,所述第1文件分片数据流至所述第N文件分片数据流构成所述待处理文件的完整文件,N为不小于2的整数,m依次取2到N的整数;
基于所述完整哈希值,完成针对所述待处理文件的处理。
在本申请的一些实施例中,文件处理的装置为上传文件的装置,文件上传的装置包括:
上传模块,用于基于所述完整哈希值,将N个所述文件分片数据流的按所述待处理文件的顺序依序从所述本地内存上传各个所述文件分片数据流至文件接收端,或者从所述本地内存上传完整的所述待处理文件至所述文件接收端。
在本申请的一些实施例中,文件处理的装置为密文数据流的装置,密文数据流的装置包括:
加密处理模块,用于基于所述待处理文件的完整哈希值,针对完整的所述待处理文件的N个所述文件分片数据流依次读取至所述本地内存分别进行加密处理或者将完整的所述待处理文件读取至所述本地内存进行加密处理。
第四方面,本申请实施例公开了一种基于哈希校验的文件校验装置,基于哈希校验的文件校验装置包括:
第一接收模块,用于接收对应于完整的待处理文件的完整哈希值;
第二接收模块,用于接收由所述待处理文件分片而成的N个文件分片数据流,其中,所述N为大于1的整数;
拼接模块,用于将N个所述文件分片数据流进行拼接,得到所述完整的待处理文件;
校验模块,用于利用所述完整哈希值对拼接得到的所述完整的待处理文件进行校验。
第五方面,本申请实施例公开了一种设备,设备包括:
存储器,用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如以上任意一种所述的文件处理的方法的步骤。
第六方面,本申请实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有处理程序,处理器执行所述处理程序时实现如以上任意一种所述的文件处理的方法的步骤。
第七方面,本申请实施例公开了一种服务器,所述服务器包括:
存储器,用于存储校验程序;
处理器,所述处理器执行所述校验程序时实现如以上任意一种所述的基于哈希校验的文件校验方法的步骤。
第八方面,本申请实施例公开了一种系统,包括以上提到的设备和服务器。
本申请其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本申请说明书中的记载变的显而易见。
附图说明
图1为根据本申请的实施例的实施文件上传的场景和系统的结构示意图;
图2(a)为本申请实施例公开的一种文件上传方法的流程示意图
图2(b)为本申请实施例公开的一种图2(a)中S21的具体实现示意图;
图2(c)为本申请实施例公开的一种密文数据流上传方法的流程示意图;
图2(d)为本申请实施例公开的一种文件加密方法的流程示意图;
图3为本申请实施例公开的一种文件处理的方法流程示意图;
图4为本申请实施例公开的一种基于哈希校验的文件校验方法的流程示意图;
图5为本申请实施例公开的一种文件处理的装置的结构示意图;
图6为本申请实施例公开的一种基于哈希校验的文件校验装置的结构示意图;
图7为本申请实施例公开的一种电子设备的结构示意图;
图8为本申请实施例公开的一种SOC的结构示意图;
图9为本申请实施例公开的一种系统的结构示意图;
图10为本申请实施例公开的一种系统的线程模型的工作流程示意图;
图11为本申请实施例公开的一种待处理文件的完整哈希值的计算流程示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本申请的其他优点及功效。虽然本申请的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本申请的权利要求而有可能延伸出的其它选择或改造。为了提供对本申请的深度了解,以下描述中将包含许多具体的细节。本申请也可以不使用这些细节实施。此外,为了避免混乱或模糊本申请的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可以理解,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(ASIC)、
电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。
可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。
本地设备计算整个文件全部内容的哈希值时,如果整个文件过大,则需要占用较大的内存空间,且计算等待的时间相对较长,若本地设备的内存空间不足,则会导致整个文件的哈希值计算失败,拖慢整个文件的上传效率,此外,在本地设备上传文件至云存储前,需要对待上传文件进行加密,现有技术中,传统的手段是将待上传文件一次性加载到本地内存中进行加密并将加密后的待上传文件暂时存储至本地设备的物理存储空间内,然后在本地内存中计算整个待处理文件的完整哈希值,计算出完整哈希值之后,将完整哈希值和加密后的待处理文件上传至云存储端。如此,对于待上传文件的加密以及哈希值的计算完全依赖于本地内存的可用大小,且加密后的待处理文件的缓存也完全依赖于本地设备的物理存储空间,当本地设备的物理存储空间不足时,容易导致加密后的待处理文件在本地物理存储空间内缓存失败,此外,在加密后的待处理文件上传后,还需要清除本地设备的物理存储空间内缓存的加密的待处理文件,操作繁琐,且在未及时本地设备的物理存储空间内的缓存的加密的待处理文件时,会无效占用本地设备的物理存储空间,降低了本地设备的物理存储空间的有效利用率。
本申请实施例中,本地设备可以是计算机、手机以及掌上电脑等终端设备,文件接收端可以为云存储服务器等在线存储设备,本地设备实现对待处理文件的处理,文件接收端实现接收本地设备上传的处理后的待处理文件或者其余的处理信息(如完整哈希值)。
针对于本地设备,待处理文件的处理包括:待处理文件的完整哈希值的计算、待处理文件的加密以及对加密后的待处理文件进行哈希值计算、对待处理文件的完整哈希值的计算并上传完整哈希值和待处理文件、待处理文件的加密以及加密后的待处理文件进行完整哈希值计算并上传完整哈希值和加密后的待处理文件。
下面结合附图对本申请实施例公开的一种文件上传方法进行说明。
图1示出了根据本申请的实施例的实施文件上传的场景和系统的图。如图1所示,终端100和终端200通过网络300彼此连接,两者彼此间可以进行文件的传输,包括下载和上传,终端100可以对应于本申请实施例中提供的设备,终端200可以为本申请实施例中提供的服务器。
终端200可以实现为云存储服务器设备、也可以实现为分布式存储的存储节点等。在以下的说明中,以终端200被实现为云存储服务器为例进行说明。
在终端100需要上传文件到服务器时,需要计算整个待处理文件,即待上传文件的全部内容的哈希值并上传至服务器,由云存储存储哈希值以对上传的文件进行完整性校验。
图2(a)为本申请实施例公开的一种文件上传方法的流程示意图。如图2(a)所示的文件上传方法包括:
步骤S20:从待处理文件读取待处理文件的第1文件分片数据流至所述本地内存中。将待上传到服务器上的文件,即待处理文件,其是被分段处理的,各段文件被称为文件分片数据流。以分段文件分片数据流的数量为大于2的整数,计为N。以下以N为6作为示例进行说明。
各个文件分片数据流各自的大小可以预先确定,例如每个文件分片数据流的被规定为不超过预设的大小,例如以兆字节M为单位的。在文件上传的操作中,文件需要在终端100的本地内存中被处理后通过网络发送至外部的服务器(终端200)。在终端100的内存可能有限的场景中,各个文件分片数据流的大小可以基于当前终端100剩余的可用的内存容量大小来决定,即各个文件分片数据流的大小不超过当前终端100剩余的可用的内存容量的大小。
步骤S21:进行针对其后各段的文件分片数据流的循环处理,依序从待处理文件中读取各段文件分片数据流,并且基于前一段文件分片数据流得到的哈希值以及当前段的文件分片数据流来计算当前段的文件分片数据流的哈希值。直到结合最后一段文件分片数据流,即第6段文件分片数据流以及其前面一段文件分片数据流,即第5文件分片数据流的哈希值,即第5哈希值,得到了针对最后一段文件分片数据流的哈希值,即第6哈希值,并将第6哈希值作为完整的待处理文件的哈希值。
在针对每段文件分片数据流的处理过程中,完成对当前段的文件分片数据流的处理后,该文件分片数据流可以从本地内存中释放,以释放内存空间。
步骤S22:上传完整哈希值至文件接收端。
步骤S23:依照与步骤S20和S21相同的规则依次读取第1文件分片数据流至第N文件分片数据流至本地内存中,将第1文件分片数据流至第N文件分片数据流依次上传至作为文件接收端的服务器处。
值得注意的是,如果实时监测到的本地内存的可用内存空间充足(满足加载完整的待处理文件的空间需求),则直接加载完整的待处理文件至本地内存中,在本地内存中完成对整个待处理文件的加密后,将加密后的完整的待处理文件上传至文件接收端。
以下参考图2(b)说明根据本申请的实施方式的文件上传方法中的循环处理。以文件分片数据流的个数为6进行说明,如图2(b)所示的,图2(b)中所示的步骤21包括以下步骤:
步骤S211:将第m个文件分片数据流读取至本地内存中,其中m为依次取从2到N的整数。举例来说,作为循环的开始,先读取第2文件分片数据流至本地内存中。
步骤S212:基于前一次计算得到的哈希值,即对应于第(m-1)段文件分片数据流得到的第m-1哈希值,将第m-1哈希值及第m文件分片数据流进行迭代计算,得到第m哈希值。举例来说,对于第2文件分片数据流的处理来讲,是基于对应于第1文件分片数据流的第1哈希值和第2文件分片数据流得到对应于第2文件分片数据流的哈希值。
步骤S213,m的计数加1。
步骤S214,判断当前处理完的文件分片数据流是否是待处理文件的最末尾的文件分片数据流,即判断经步骤S213的计数后当前的m是否等于N(可选为6),如果m小于N则返回重复步骤S211,否则进入步骤S215。
步骤S215,完成第N文件分片数据流的计算,得到第N哈希值作为待处理文件的完整哈希值。
图2(c)为本申请实施例公开的一种密文数据流上传方法的流程示意图。
如图2(c)所示的密文数据流的上传方法包括:
步骤S24:从待处理文件读取待处理文件的第1文件分片数据流至所述本地内存中。
各个文件分片数据流各自的大小可以预先确定,例如每个文件分片数据流的被规定为不超过预设的大小,例如以兆字节M为单位的。在文件上传的操作中,文件需要在终端100的本地内存中被处理后通过网络发送至外部的服务器(终端200)。在终端100的内存可能有限的场景中,各个文件分片数据流的大小可以基于当前终端100剩余的可用的内存容量大小来决定,即各个文件分片数据流的大小不超过当前终端100剩余的可用的内存容量的大小。
步骤S25:读取第1文件分片数据流至本地内存中,并对第1文件分片数据流进行加密处理。
步骤S26:在本地内存中计算加密后的第1文件分片数据流的第1哈希值完成对第1文件分片数据流的处理,并将第1哈希值暂时缓存至本地内存中。
值得注意的是,完成对第1文件分片数据流的处理后,第1文件分片数据流以及加密的第1文件分片数据流均从本地内存中释放,在占用较少内存空间的同时避免了占用本地设备的物理存储空间。
步骤S27:进行循环处理,依序从待处理文件中读取文件大小不超过当前时刻本地内存的可用内存空间大小的第m文件分片数据流。
步骤S28:读取第m文件分片数据流至本地内存中,并对第m文件分片数据流进行加密处理。
步骤S29:基于加密后的第m-1文件分片数据流的第m-1哈希值,将第m-1哈希值及加密后的第m文件分片数据流进行迭代计算,得到第m哈希值,直至完成第N文件分片数据流的计算,得到第N哈希值作为待处理文件的完整哈希值。
其中,m的取值范围为2-N的整数。
步骤S241:上传完整哈希值至文件接收端。
步骤S242:依次读取第1文件分片数据流至第N文件分片数据流至本地内存中,在本地内存中依次对第1文件分片数据流至第N文件分片数据流进行加密处理。
步骤S243:从本地内存中将加密后的第1文件分片数据流至第N文件分片数据流依次上传至文件接收端。
值得注意的是,如果实时监测到的本地内存的可用内存空间充足(满足加载待处理文件的空间需求),则直接加载待处理文件至本地内存中,在本地内存中完成对整个待处理文件的加密后,将加密后的完整的待处理文件上传至文件接收端。
在本申请的一些实施例中,对于待处理文件的加密处理可以是采用对称加密算法进行加密处理。
为了避免利用对称加密算法进行加密处理后,后续对待处理文件进行哈希计算时的错误计算,在本申请的一些实施例中,第1文件分片数据流至第N文件分片数据流的大小需设置为16字节的整数倍,需要注意的是,若待处理文件不能被均分为16字节或者16字节的整数倍,待处理文件的最后一个文件分片数据流可以不为16字节或者16字节的整数倍。如本地设备的本地内存的可用内存空间充足(如大于2M)时,为了加快待处理文件内容加密的速度,可以将本次读取的文件分片数据流的大小设置为1M,本地设备的本地内存的可用内存空间较小(如小于1M),为了减少本地内存不足引起加载数据失败的问题,可以将本次读取的文件分片数据流的文件大小设置为10K,因此,本申请实施例中分片的第1文件分片数据流至第N文件分片数据流的大小是根据实时监测到的本地内存的可用内存空间的大小动态调整的。
如步骤S27所示的循环处理的过程与步骤S21和如图2(b)介绍的循环处理的步骤基本相同,区别仅在于所处理的文件是在本地内存中加密后的文件。
下面结合图2(d)对本申请实施例公开的一种文件加密方法进行说明,图2(d)为本申请实施例公开的一种文件加密方法的流程示意图,在执行以下图2(d)所示的文件加密的步骤时,实时监测本地内存的可用内存空间(可用空间)的大小,图2(d)所示的文件加密方法包括:
步骤S244:从待处理文件读取待处理文件的第1文件分片数据流至所述本地内存中。
步骤S245:对第1文件分片数据流进行加密处理。
步骤S246:在本地内存中计算加密后的第1文件分片数据流的第1哈希值完成对第1文件分片数据流的处理,并将第1哈希值暂时缓存至本地内存中。
值得注意的是,完成对第1文件分片数据流的处理后,第1文件分片数据流以及加密的第1文件分片数据流均从本地内存中释放,避免占用本地设备的物理存储空间。
步骤S247:进行循环处理,依序从待处理文件中读取文件大小不超过当前时刻本地内存的可用内存空间大小的第m文件分片数据流。
如步骤S247所示的循环处理的过程与步骤S27介绍的循环处理的步骤基本相同。
步骤S248:读取第m文件分片数据流至本地内存中,并对第m文件分片数据流进行加密处理。
步骤S249:基于加密后的第m-1文件分片数据流的第m-1哈希值,将第m-1哈希值及加密后的第m文件分片数据流进行迭代计算,得到第m哈希值,直至完成第N文件分片数据流的计算,得到第N哈希值作为待处理文件的完整哈希值。
其中,m的取值范围为2-N的整数,至此完成对待处理文件的加密。
值得注意的是,如果实时监测到的本地内存的可用内存空间充足(满足加载待处理文件的空间需求),则直接加载待处理文件至本地内存中,在本地内存中完成对整个待处理文件的加密。
在本申请的一些实施例中,对于待处理文件的加密处理可以是采用对称加密算法进行加密处理。
为了避免利用对称加密算法进行加密处理后,后续对待处理文件进行哈希计算时的错误计算,在本申请的一些实施例中,第1文件分片数据流至第N文件分片数据流的大小需设置为16字节的整数倍,如本地设备的本地内存的可用内存空间充足(如大于2M)时,为了加快待处理文件内容加密的速度,可以将本次读取的文件分片数据流的大小设置为1M,本地设备的本地内存的可用内存空间较小(如小于1M),为了减少本地内存不足引起加载数据失败的问题,可以将本次读取的文件分片数据流的文件大小设置为10K,因此,本申请实施例中分片的第1文件分片数据流至第N文件分片数据流的大小是根据实时监测到的本地内存的可用内存空间的大小动态调整的。
值得注意的是,对于待处理文件的加密处理也可以采用其余的加密算法,本申请实施例在此并不作限定。
下面结合图3对本申请实施例公开的一种文件处理的方法进行说明,图3为本申请实施例公开的一种文件处理的方法流程示意图,图3所示的文件处理的方法包括:
步骤S30:从待处理文件中读取待处理文件至本地内存中的第1文件分片数据流。
步骤S31:在本地内存中计算第1文件分片数据流的第1哈希值完成对第1文件分片数据流的处理,并将第1哈希值暂时缓存至本地内存中。
值得注意的是,完成对第1文件分片数据流的处理后,第1文件分片数据流从本地内存中释放,避免占用本地内存。
步骤S32:进行循环处理,依次将第m文件分片数据流读取至本地内存中,并且基于第m-1哈希值及第m文件分片数据流计算得到第m哈希值,直至完成针对第N文件分片数据流的计算,以得到第N哈希值作为待处理文件的完整哈希值,其中,第1文件分片数据流至第N文件分片数据流构成待处理文件的完整文件,N为不小于2的整数,m依次取2到N的整数。
值得注意的是,如此循环处理,待处理文件根据本地内存的可用内存空间的大小便被分片成N个文件分片数据流,N个文件分片数据流的大小可以相同,也可以互不相同。
步骤S33:基于完整哈希值,完成针对待处理文件的处理。
针对文件接收端,文件接收端实现接收本地设备上传的完整哈希值以及上传的与待处理文件对应的各个文件分片数据流,然后对各个文件分片数据流进行拼接得到完整的待处理文件,并利用完整哈希值对完整的待处理文件进行校验。
值得注意的是,如步骤S32所示的循环处理的过程包括步骤S21和如图2(b)和S27介绍的循环处理的步骤。
下面结合图4对本申请实施例公开的一种基于哈希校验的文件校验方法进行说明,图4为本申请实施例公开的一种基于哈希校验的文件校验方法的流程示意图,图4所示的基于哈希校验的文件校验方法包括:
步骤S40:接收对应于完整的待处理文件的完整哈希值。
步骤S41:接收由待处理文件分片而成的N个文件分片数据流,其中,N为大于1的整数。
步骤S42:将N个文件分片数据流进行拼接,得到完整的待处理文件。
步骤S43:利用完整哈希值对拼接得到的完整的待处理文件进行校验。
在本申请的一些实施例中,文件接收端为供待处理文件上传的服务器设备。
在本申请的一些实施例中,服务器设备为云存储服务器。
图5为本申请实施例公开的一种文件处理的装置的结构示意图,文件处理的装置包括:
读取模块50,用于从待处理文件中读取所述待处理文件的第1文件分片数据流至本地内存中;
计算模块51,用于计算第1文件的第1哈希值;
循环处理模块52,进行循环处理,依次将第m文件分片数据流读取至所述本地内存,并且基于第m-1哈希值及所述第m文件分片数据流计算得到第m哈希值,其中m依次取从2到N的整数,直至完成针对所述第N文件分片数据流的计算,以得到第N哈希值作为所述待处理文件的完整哈希值,其中,所述第1文件分片数据流至所述第N文件分片数据流构成所述待处理文件的完整文件,N为不小于2的整数,m依次取2到N的整数;
基于所述完整哈希值,完成针对所述待处理文件的处理。
在本申请的一些实施例中,文件处理的装置可以被实现为用于上传文件的装置,待处理文件被送入本地内存中的处理是:待处理文件被分段读取入本地内存中,再逐段循环地迭代计算每一段文件分片数据流的哈希值。得到待处理文件的完整的哈希值以后,将待处理文件的完整哈希值以及待处理文件进行上传。根据本实施方式的用于文件上传处理的上传文件的装置所执行的处理与上述图2(a)对应的文件上传方法相同。
在本申请的一些实施例中,文件处理的装置可以被实现为用于文件加密上传的装置,待处理文件被送入本地内存中的处理是:待处理文件被分段读取入本地内存中,再逐段循环地对每一段文件分片数据流进行加密处理,将加密处理后的加密文件分片数据流迭代计算每一段加密文件分片数据流的哈希值。得到完整的加密待处理文件的完整的哈希值以后,将完整的加密待处理文件的完整哈希值上传,然后再循环地将待处理文件分段读取到本地内存中,并依次对每一段文件分片数据流进行加密,并依次上传加密后的文件分片数据流,实现边加密边上传的过程。根据本实施方式的用于文件加密上传处理的文件加密上传的装置所执行的处理与上述图2(b)对应的文件加密上传的方法相同。
在本申请的一些实施例中,文件处理的装置可以被实现为用于文件加密的装置,待处理文件被送入本地内存中的处理是:待处理文件被分段读取入本地内存中,再逐段循环地对每一段文件分片数据流进行加密处理,将加密处理后的加密文件分片数据流迭代计算每一段加密文件分片数据流的哈希值,得到完整的加密待处理文件的完整的哈希值,实现待处理文件的加密。
根据本实施方式的用于文件加密处理的文件加密装置所执行的处理与上图2(c)对应的文件加密的方法相同。
图6为本申请实施例公开的一种基于哈希校验的文件校验装置的结构示意图,基于哈希校验的文件校验装置包括:
第一接收模块60,用于接收对应于完整的待处理文件的完整哈希值;
第二接收模块61,用于接收由待处理文件分片而成的N个文件分片数据流,其中,N为大于1的整数;
拼接模块62,用于将N个文件分片数据流进行拼接,得到完整的待处理文件;
校验模块63,用于利用完整哈希值对拼接得到的完整的待处理文件进行校验。
在本申请一些实施例中,提供了一种电子设备,下面结合图7对本申请实施例中的电子设备进行介绍。图7为本申请实施例公开的一种电子设备的结构示意图。
对于至少一个实施例,控制器中枢704经由诸如前端总线(FSB)之类的多分支总线、诸如快速通道互连(QPI)之类的点对点接口、或者类似的连接与处理器701进行通信。处理器701执行控制一般类型的数据处理操作的指令。在一实施例中,控制器中枢704包括,但不局限于,图形存储器控制器中枢(GMCH)(图中未示出)和输入/输出中枢(IOH)(其可以在分开的芯片上)(图中未示出),其中GMCH包括存储器和图形控制器并与IOH耦合。
电子设备700还可包括耦合到控制器中枢704的协处理器706和存储器702。或者,存储器702和GMCH中的一个或两者可以被集成在处理器701内(如本申请中所描述的),存储器702和协处理器706直接耦合到处理器701以及控制器中枢704,控制器中枢704与IOH处于单个芯片中。
在一个实施例中,存储器702可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)或这两者的组合。存储器702中可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。计算机可读存储介质中存储有指令,具体而言,存储有该指令的暂时和永久副本。
在一个实施例中,协处理器706是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、或嵌入式处理器等等。协处理器706的任选性质用虚线表示在图7中。
在一个实施例中,电子设备700可以进一步包括网络接口(NIC)703。网络接口703可以包括收发器,用于为设备700提供无线电接口,进而与任何其他合适的设备(如前端模块,天线等)进行通信。在各种实施例中,网络接口703可以与电子设备700的其他组件集成。网络接口703可以实现上述实施例中的通信单元的功能。
在一个实施例中,如图7所示的,电子设备700可以进一步包括输入/输出(I/O)设备705。输入/输出(I/O)设备705可以包括:用户界面,该设计使得用户能够与电子设备700进行交互;外围组件接口的设计使得外围组件也能够与电子设备700交互;和/或传感器设计用于确定与电子设备700相关的环境条件和/或位置信息。
值得注意的是,图7仅是示例性的。即虽然图7中示出了电子设备700包括处理器701、控制器中枢704、存储器702等多个器件,但是,在实际的应用中,使用本申请各方法的设备,可以仅包括电子设备700各器件中的一部分器件,例如,可以仅包含处理器701和NIC703。图7中可选器件的性质用虚线示出。
在本申请一些实施例中,该电子设备700可以实现本申请的设备。或者实现为根据本申请的服务器,这取决于根据电子设备700其内所存储的指令所执行的操作。
当电子设备700被实现为根据本申请的设备的实施方式中,计算机可读存储介质中存储有指令可以包括:由处理器中的至少一个单元执行时导致设备实施如图1至图3提到的文件处理方法的指令。当指令在计算机上运行时,使得计算机执行上述如图1至图3所提到的文件处理方法。
在电子设备700被实现为根据本申请的服务器的实施方式中,计算机可读存储介质中存储有指令可以包括:由处理器中的至少一个单元执行时导致服务器实施如图4所提到的基于哈希校验的文件校验方法的指令。当指令在计算机上运行时,使得计算机执行上述如图4所提到的基于哈希校验的文件校验方法。
现在参考图8,图8为本申请实施例公开的一种SOC的结构示意图,所示为根据本申请的一实施例的SoC(System on Chip,片上系统)1000的框图。在图8中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。该SoC可以被用于根据本申请的一实施例的设备,或者用于根据本申请实施例的服务器。根据其所在的设备不同以及其内所存储的指令的不同,可以实现相应的功能。
在图8中,SoC 1000包括:互连单元1002,其被耦合至处理器1001;系统代理单元1006;总线控制器单元1005;集成存储器控制器单元1003;一组或一个或多个协处理器1007,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1008;直接存储器存取(DMA)单元1004。在一个实施例中,协处理器1007包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
静态随机存取存储器(SRAM)单元1008中可以包括用于存储数据和/或指令的一个或多个计算机可读介质。计算机可读存储介质中可以存储有指令,具体而言,存储有该指令的暂时和永久副本。
在SoC 1000被应用于根据本申请的设备上时,计算机可读存储介质中存储有指令可以包括:由处理器中的至少一个单元执行时导致网络路由设备实施如图1-图3所提到的文件处理的方法的指令。当指令在计算机上运行时,使得计算机执行上述如图1-图3所提到的文件处理的方法。
在SoC 1000被应用于根据本申请的服务器上时,计算机可读存储介质中存储有指令可以包括:由处理器中的至少一个单元执行时服务器实施如图4所提到的基于哈希校验的文件校验方法的指令。当指令在计算机上运行时,使得计算机执行上述如图4所提到的基于哈希校验的文件校验方法。
图9为本申请实施例公开的一种系统的结构示意图,如图9所示的,系统9包括以上提到的设备和服务器。
图10为本申请实施例公开的一种系统的线程模型的工作流程示意图,图11为本申请实施例公开的一种待处理文件的完整哈希值的计算流程示意图,图10中,以加密处理为对称加密算法处理为例,以服务器为云端服务器为例,以待处理文件为5GB的视频文件为例,结合图11的完整哈希值的计算流程示意图,如图10所示的,线程模型的工作流程示意图具体如下:
步骤S100:监听本地设备的本地内存的可用内存空间大小,假设为3MB。
步骤S101:根据本地内存的可用空间大小从5GB的视频文件中读取目标值(不超过可用内存空间大小,如为1MB)的第1视频文件分片数据流。
步骤S102:对读取的第1视频文件分片数据流进行对称加密算法的加密处理,得到第1视频文件分片数据流加密后的密文数据流Encrypted_Buffer1。
步骤S103:对第1视频文件分片数据流加密后的密文数据流Encrypted_Buffer1利用hash算法进行哈希值计算。
如图11所示的,此时得到了5GB视频文件的加密后第一段1MB大小的第1视频文件分片数据流的第1哈希值,记为hash1,为了最终得到整个视频文件的完整哈希值,继续循环读取视频文件剩余的内容。
步骤S104:循环执行S100-S103,直至读取完整个5GB视频文件,得到迭代计算出的完整哈希值。
如图11所示的,5GB视频文件的完整哈希值的迭代过程如下:
计算出加密后的1MB的第1视频文件分片数据流的hash1。
然后再顺序获取到5GB视频文件的第二段视频文件分片数据流(如此时本地内存的可用空闲内存为4GB,读取的第二段视频文件分片数据流的大小可以为3GB),对第二段视频文件分片数据流加密后得到密文数据流Encrypted_Buffer2,使用hash迭代算法将hash1与Encrypted_Buffer2进行迭代计算得到新的密文摘要,记为hash2(第1视频文件分片数据流和第二段视频文件分片数据流的总的哈希值);如此循环,可以迭代得到hash3、hash4,直至迭代得到N个视频文件分片数据流的完整哈希值hashN,在5GB视频文件读取完成后最终就可以得到视频文件加密后的完整哈希值hashN。
步骤S105:将完整哈希值上传到云存储服务器供5GB视频文件的校验。
接下来执行5GB视频文件的边加密边上传的过程。采用以下上传方案,我们在5GB时文件加密得到的密文上传过程中也能够做到有效的减少对本地设备的本地内存和物理存储空间的依赖的目的。
步骤S106:监听本地设备的本地内存的可用内存空间大小。
步骤S107:根据本地内存的可用空间大小从5GB的视频文件中读取目标值(不超过可用内存空间大小,如为1MB)的第1视频文件分片数据流。
步骤S108:对读取的第1视频文件分片数据流进行对称加密算法的加密处理,得到第1视频文件分片数据流加密后的密文数据流Encrypted_Buffer1。
步骤S109:将第1视频文件分片数据流加密后的密文数据流Encrypted_Buffer1上传到云存储服务器。
步骤S110:重复执行步骤S106至S109,直至将整个视频文件以子视频文件的形式全部读取至本地存储并完成加密,并依次将加密后的各个视频文件分片数据流依序上传至云存储服务器。
步骤S111:云存储服务器对接收到的各个视频文件分片数据流进行拼接,得到完整的5GB视频文件,根据接收到的完整哈希值对完整的5GB视频文件进行校验。
本申请实施例公开的一种文件处理方法、装置、设备及存储介质和基于哈希校验的文件校验方法及服务器,具有如下有益效果:
读取待处理文件的第1文件分片数据流至第N文件分片数据流,由于整个待处理文件以文件分片数据流的形式依次读取到本地内存中进行处理,因此,其并不依赖于过大的本地内存空间,各个文件分片数据流的大小基于本地内存的可用空间大小动态调整,即文件分片数据流的大小不超过本地内存的可用空间大小,因此本地内存都能满足各个文件分片数据流在本地内存中进行哈希计算时的内存需求,避免了文件加载以及哈希值计算失败。此外,在本地设备加密待处理文件时,其是依次读取待处理文件的第1文件分片数据流至第N文件分片数据流,依次将各文件分片数据流读取到本地内存中进行加密以及计算哈希值,在一个文件分片数据流加密完成后,先在本地内存中缓存其哈希值,将密文数据流从本地内存释放,并不存储于本地设备的物理缓存空间,直至在本地设备中完成整个待处理文件的加密后的完整哈希值的计算并上传至文件接收端后,再将各个文件分片数据流依次读取到本地内存中,依次对各个文件分片数据流进行加密后,将得到的文件分片数据流的密文流边加密边上传至文件接收端,并不依赖存储于本地设备的物理存储空间和过大的本地内存,避免了占用本地设备的物理存储空间以及清除物理存储空间中的缓存数据带来的操作繁琐的问题,以及避免了过度依赖本地内存的问题。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (17)
1.一种文件处理的方法,其特征在于,包括:
从待处理文件中读取所述待处理文件的第1文件分片数据流至本地内存中,并计算所述第1文件的第1哈希值;
进行循环处理,依次将第m文件分片数据流读取至所述本地内存,并且基于第m-1哈希值及所述第m文件分片数据流计算得到第m哈希值,其中m依次取从2到N的整数,直至完成针对所述第N文件分片数据流的计算,以得到第N哈希值作为所述待处理文件的完整哈希值,其中,所述第1文件分片数据流至所述第N文件分片数据流构成所述待处理文件的完整文件,N为不小于2的整数,m依次取2到N的整数;
基于所述完整哈希值,完成针对所述待处理文件的处理。
2.如权利要求1所述的文件处理的方法,其特征在于,所述文件处理的方法是上传文件的方法,并且所述上传文件的方法包括:
基于所述完整哈希值,将N个所述文件分片数据流按所述待处理文件的顺序依序从所述本地内存上传各个所述文件分片数据流至文件接收端,或者从所述本地内存上传完整的所述待处理文件至所述文件接收端。
3.如权利要求2所述的文件处理的方法,其特征在于,用于计算哈希值的所述第1个文件分片数据流到所述第N文件分片数据流是分别经加密处理后的文件,
所述加密处理是在各所述文件分片数据流依次被读取至所述本地内存后完成。
4.如权利要求1所述的文件处理的方法,其特征在于,所述文件处理的方法是密文数据流的方法,所述密文数据流的方法包括:
基于所述待处理文件的完整哈希值,针对完整的所述待处理文件的N个所述文件分片数据流依次读取至所述本地内存分别进行加密处理或者将完整的所述待处理文件读取至所述本地内存进行加密处理。
5.如权利要求1-4任意一项所述的文件处理的方法,其特征在于,N个所述文件分片数据流中,各个所述文件分片数据流的大小根据所述本地内存的可用大小确定。
6.如权利要求5所述的文件处理的方法,其特征在于,N个所述文件分片数据流的大小相等。
7.如权利要求3或4所述的文件处理的方法,其特征在于,所述加密处理采用对称加密算法进行加密处理。
8.如权利要求1所述的文件处理的方法,其特征在于,N个所述文件分片数据流的大小均为16字节的整数倍。
9.一种基于哈希校验的文件校验方法,应用于文件接收端,其特征在于,包括:
接收对应于完整的待处理文件的完整哈希值;
接收由所述待处理文件分片而成的N个文件分片数据流,其中,所述N为大于1的整数;
将N个所述文件分片数据流进行拼接,得到所述完整的待处理文件;
利用所述完整哈希值对拼接得到的所述完整的待处理文件进行校验。
10.如权利要求9所述的基于哈希校验的文件校验方法,其特征在于,所述文件接收端为供所述待处理文件上传的服务器设备。
11.如权利要求10所述的基于哈希校验的文件校验方法,其特征在于,所述服务器设备具体为云存储服务器。
12.一种文件处理的装置,其特征在于,所述文件处理装置包括:
读取模块,用于从待处理文件中读取所述待处理文件的第1文件分片数据流至本地内存中,并计算所述第1文件的第1哈希值;
循环处理模块,用于进行循环处理,依次将第m文件分片数据流读取至所述本地内存,并且基于第m-1哈希值及所述第m文件分片数据流计算得到第m哈希值,其中m依次取从2到N的整数,直至完成针对所述第N文件分片数据流的计算,以得到第N哈希值作为所述待处理文件的完整哈希值;其中,所述第1文件分片数据流至所述第N文件分片数据流构成所述待处理文件的完整文件,N为不小于2的整数,m依次取2到N的整数;
基于所述完整哈希值,完成针对所述待处理文件的处理。
13.一种基于哈希校验的文件校验装置,其特征在于,所述基于哈希校验的文件校验装置包括:
第一接收模块,用于接收对应于完整的待处理文件的完整哈希值;
第二接收模块,用于接收由所述待处理文件分片而成的N个文件分片数据流,其中,所述N为大于1的整数;
拼接模块,用于将N个所述文件分片数据流进行拼接,得到所述完整的待处理文件;
校验模块,用于利用所述完整哈希值对拼接得到的所述完整的待处理文件进行校验。
14.一种设备,其特征在于,所述设备包括:
存储器,用于存储处理程序;
处理器,所述处理器执行所述处理程序时实现如权利要求1-8任意一项所述的文件处理的方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有处理程序,处理器执行所述处理程序时实现如权利要求1-8任意一项所述的文件处理的方法的步骤。
16.一种服务器,其特征在于,所述服务器包括:
存储器,用于存储校验程序;
处理器,所述处理器执行所述校验程序时实现如权利要求9-11任意一项所述的基于哈希校验的文件校验方法的步骤。
17.一种系统,其特征在于,包括权利要求14所述的设备和权利要求16所述的服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911223078.9A CN112905542A (zh) | 2019-12-03 | 2019-12-03 | 一种文件处理方法、装置、服务器、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911223078.9A CN112905542A (zh) | 2019-12-03 | 2019-12-03 | 一种文件处理方法、装置、服务器、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112905542A true CN112905542A (zh) | 2021-06-04 |
Family
ID=76104135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911223078.9A Pending CN112905542A (zh) | 2019-12-03 | 2019-12-03 | 一种文件处理方法、装置、服务器、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112905542A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938269A (zh) * | 2021-12-15 | 2022-01-14 | 亿次网联(杭州)科技有限公司 | 一种文件分片上传校验方法和系统 |
CN114579954A (zh) * | 2021-08-26 | 2022-06-03 | 华为技术有限公司 | 安全启动校验的方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016056856A1 (ko) * | 2014-10-08 | 2016-04-14 | 재단법인 다차원 스마트 아이티 융합시스템 연구단 | 무결성 검증 데이터 생성 방법 및 시스템 |
CN107360191A (zh) * | 2017-08-28 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 一种文件获取方法、装置及存储设备 |
CN107451090A (zh) * | 2016-06-01 | 2017-12-08 | 华为技术有限公司 | 数据处理系统和数据处理方法 |
-
2019
- 2019-12-03 CN CN201911223078.9A patent/CN112905542A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016056856A1 (ko) * | 2014-10-08 | 2016-04-14 | 재단법인 다차원 스마트 아이티 융합시스템 연구단 | 무결성 검증 데이터 생성 방법 및 시스템 |
CN107451090A (zh) * | 2016-06-01 | 2017-12-08 | 华为技术有限公司 | 数据处理系统和数据处理方法 |
CN107360191A (zh) * | 2017-08-28 | 2017-11-17 | 腾讯科技(深圳)有限公司 | 一种文件获取方法、装置及存储设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114579954A (zh) * | 2021-08-26 | 2022-06-03 | 华为技术有限公司 | 安全启动校验的方法及电子设备 |
CN113938269A (zh) * | 2021-12-15 | 2022-01-14 | 亿次网联(杭州)科技有限公司 | 一种文件分片上传校验方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2014235793B2 (en) | Automatic tuning of virtual data center resource utilization policies | |
CN108270874B (zh) | 应用程序的更新方法及装置 | |
CN109597717B (zh) | 一种数据备份、恢复方法、装置、电子设备及存储介质 | |
CN110659151B (zh) | 数据校验方法及装置,存储介质 | |
CN107819891B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US9215251B2 (en) | Apparatus, systems, and methods for managing data security | |
CN110247986A (zh) | 一种文件传输方法、装置及电子设备 | |
CN111899097B (zh) | 一种受理区块链存证交易的方法及系统 | |
CN106302595A (zh) | 一种对服务器进行健康检查的方法及设备 | |
CN112905542A (zh) | 一种文件处理方法、装置、服务器、设备及存储介质 | |
CN110389859B (zh) | 用于复制数据块的方法、设备和计算机程序产品 | |
CN111953770B (zh) | 一种路由转发方法、装置、路由设备及可读存储介质 | |
CN111475108A (zh) | 一种分布式存储方法、计算机设备及计算机可读存储介质 | |
CN110659905A (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN109756533B (zh) | 一种镜像加速方法、装置及服务器 | |
CN113535226B (zh) | 应用下载方法、终端、服务器、计算机设备以及存储介质 | |
CN109388335B (zh) | 一种数据存储方法及系统 | |
CN113852665A (zh) | 文件上传方法、装置、电子设备、存储介质及程序产品 | |
US10375209B2 (en) | Secure boot download computations based on host transport conditions | |
US11210003B2 (en) | Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier | |
CN111464258B (zh) | 一种数据校验方法、装置、计算设备及介质 | |
US20140214768A1 (en) | Reducing backup bandwidth by remembering downloads | |
CN107395772B (zh) | 一种重复数据的管理方法及管理系统 | |
CN109951506B (zh) | 一种存储集群性能的评估方法及设备 | |
US11546171B2 (en) | Systems and methods for synchronizing anonymized linked data across multiple queues for secure multiparty computation |
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 |