WO2018171550A1 - 数据校验方法、数据发送方法、相关装置、系统及存储介质 - Google Patents

数据校验方法、数据发送方法、相关装置、系统及存储介质 Download PDF

Info

Publication number
WO2018171550A1
WO2018171550A1 PCT/CN2018/079460 CN2018079460W WO2018171550A1 WO 2018171550 A1 WO2018171550 A1 WO 2018171550A1 CN 2018079460 W CN2018079460 W CN 2018079460W WO 2018171550 A1 WO2018171550 A1 WO 2018171550A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
fingerprint information
piece
sent
information corresponding
Prior art date
Application number
PCT/CN2018/079460
Other languages
English (en)
French (fr)
Inventor
肖啸
Original Assignee
腾讯科技(深圳)有限公司
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 腾讯科技(深圳)有限公司 filed Critical 腾讯科技(深圳)有限公司
Priority to EP18772511.4A priority Critical patent/EP3606007B1/en
Publication of WO2018171550A1 publication Critical patent/WO2018171550A1/zh
Priority to US16/376,495 priority patent/US10949645B2/en

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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1335Combining adjacent partial images (e.g. slices) to create a composite input or reference pattern; Tracking a sweeping finger movement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1347Preprocessing; Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1365Matching; Classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1858Transmission or retransmission of more than one copy of acknowledgement message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Definitions

  • the present application relates to the field of computers, and in particular, to a data verification method, a data transmission method, a data receiving device, a data transmitting device, a data transmission system, and a storage medium.
  • the cloud disk or cloud network disk is an Internet storage tool.
  • the cloud disk is a product of the Internet cloud technology. It provides information storage, reading, downloading and other services for enterprises and individuals through the Internet. It has the characteristics of safety, stability and mass storage.
  • the current cloud network disk service can also provide cloud storage function of file synchronization, backup and sharing functions to the mobile electronic device of the user end, and the user only needs to install the corresponding client on the mobile electronic device, and can be connected with the server side of the cloud network disk service. Transfer data files.
  • the slice verification method is generally adopted. That is to say, the data sender sends a piece of data to the data receiver, and the data sender first uses a digest algorithm to calculate the digest, then passes the data together with the digest to the data receiver, and then the data receiver recalculates with the same digest algorithm. Once again, the data received is compared and the summary matching is performed.
  • the transmission control protocol (TCP) protocol verification method has a Checksum (sum sum check code or checksum) field in the transmitted TCP header, and the comparison check is performed to calculate the checksum. The correctness of the data piece.
  • the embodiment of the present application discloses a data verification method, and the application to the first device includes:
  • N and i are integers greater than one;
  • the embodiment of the present application discloses a data sending method, which is applied to a first device, and includes:
  • the embodiment of the present application further discloses a data verification apparatus, including: a processor and a memory, wherein the memory stores computer readable instructions, and the processor can be executed:
  • N and i are integers greater than one;
  • the embodiment of the present application further discloses a data transmitting apparatus, including a processor and a memory, where the computer stores computer readable instructions, which can be executed by the processor:
  • the embodiment of the present application further discloses a data transmission system, including the above data transmission device and the above data verification device.
  • 1A is a scenario architecture diagram of a data verification method or a data transmission method according to an embodiment of the present application
  • FIG. 1B is a schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • FIG. 1C is a schematic diagram of a process for calculating fingerprint information corresponding to data to be sent according to an embodiment of the present application.
  • FIG. 2 is a schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • FIG. 3 is a schematic diagram of a principle for calculating fingerprint information of a sender slice according to an embodiment of the present application
  • FIG. 4 is a schematic diagram of a principle of a receiver-slice accumulation check method provided by an embodiment of the present application.
  • FIG. 5A is a schematic structural diagram of a data verification apparatus according to an embodiment of the present application.
  • FIG. 5B is a schematic structural diagram of a data verification apparatus according to an embodiment of the present application.
  • FIG. 6 is a structural view of another embodiment of a data verification apparatus provided by the present application.
  • FIG. 7 is a schematic structural diagram of another embodiment of a data verification apparatus provided by the present application.
  • FIG. 8 is a schematic structural diagram of a data sending apparatus according to an embodiment of the present application.
  • FIG. 9 is a schematic structural diagram of another embodiment of a data transmitting apparatus provided by the present application.
  • FIG. 10 is a schematic structural diagram of another embodiment of a data transmitting apparatus provided by the present application.
  • the electronic device 101 can establish a connection with the server 103 through the network 102 to perform data interaction.
  • the server 103 Taking the cloud network disk as an example, the user only needs to install the corresponding client on the electronic device 101, and can perform data file transmission with the server end 103 providing the cloud network disk service, including synchronously backing up data to the server 103, or The server 103 downloads the required data.
  • the electronic device 101 When the electronic device 101 synchronously backs up data to the server 103, the electronic device 101 is the sender of the data, and the server 103 is the receiver of the data; when the electronic device 101 downloads the required data from the server 103, the electronic device 101 is the recipient of the data, and the server 103 is the sender of the data.
  • the embodiment of the present application will explain in detail how the sender transmits data and how the receiver performs data verification in conjunction with FIG. 1B to FIG. 4.
  • the electronic device 101 in the embodiment of the present application includes, but is not limited to, a personal computer, a smart mobile terminal (such as a mobile phone, a mobile computer, a tablet computer), a personal digital assistant (PDA), a smart TV, Electronic devices or terminal devices such as smart watches, smart glasses, and smart bracelets.
  • a smart mobile terminal such as a mobile phone, a mobile computer, a tablet computer
  • PDA personal digital assistant
  • a smart TV Electronic devices or terminal devices such as smart watches, smart glasses, and smart bracelets.
  • FIG. 1B is a schematic flow chart of a data verification method in the system architecture diagram shown in FIG. 1A.
  • the data verification method can be performed by the first device.
  • the first device may be the electronic device 101 as shown in FIG. 1A, or the server 103, or may be any computing device that needs to perform data transmission in other application scenarios.
  • the method can include the following steps:
  • Step 101b Receive fingerprint information of N pieces of data of the to-be-sent data sent by the second device.
  • the N pieces of data are obtained by dividing data to be transmitted.
  • the first fingerprint information corresponding to the i-th slice data is the fingerprint information obtained by updating the second fingerprint information corresponding to the i-th slice data by using the i-th slice data, and N and i are both greater than 1 The integer.
  • Step 102b Receive the ith piece of data sent by the second device.
  • Step 103b Update the received second fingerprint information by using the ith piece of data to obtain third fingerprint information.
  • Step 104b When the third fingerprint information does not match the received first fingerprint information, send data verification failure indication information to the second device.
  • the first device may receive the first piece of data of the to-be-sent data sent by the second device, calculate fourth fingerprint information of the first piece of data, and determine whether the fourth fingerprint information is The received fifth fingerprint information corresponding to the first piece of data is matched; if the fourth fingerprint information does not match the fifth fingerprint information, sending a data verification failure indication to the second device information.
  • the first device may receive the sixth fingerprint information corresponding to the data to be sent sent by the second device, and determine, by using the sixth fingerprint information, whether the data to be sent is stored in the database; If the data to be transmitted is not stored, the data transmission indication information is sent to the second device. Specifically, if the to-be-sent data is already stored, the fingerprint information corresponding to the to-be-sent data is correspondingly stored, and therefore, before receiving the first piece of data sent by the second device, receiving the second device to send And determining, by the sixth fingerprint information corresponding to the to-be-transmitted data, that the seventh fingerprint information that is the same as the sixth fingerprint information is already stored, determining that the data to be sent corresponding to the sixth fingerprint information is already stored .
  • the fingerprint information includes a message digest generated by a secure hash algorithm SHA calculation, or a generated message digest is calculated by a message digest algorithm MD.
  • the first device may divide the second to-be-sent data into M-chip data; calculate fingerprint information corresponding to each piece of data, where the M-chip data is The second fingerprint information corresponding to the j+1th piece data is the fingerprint information obtained by updating the third fingerprint information corresponding to the jth piece data by using the j+1th piece of data, and M and j are integers greater than 1; The fingerprint information corresponding to each piece of data is sent to the third device.
  • the size of M is determined by the size of the data to be transmitted and the fingerprint calculation method used.
  • the first device may use an intermediate result in the process of calculating the fingerprint information corresponding to the entire second to-be-sent data as the fingerprint information corresponding to each piece of data of the second to-be-sent data. That is, when the fingerprint information corresponding to each piece of data is calculated, the fingerprint information of the data to be transmitted can be calculated.
  • the process of calculating fingerprint information of data to be sent may include:
  • the intermediate fingerprint information corresponding to the jth piece of data is updated by using the j+1th piece of data in sequence, and the intermediate fingerprint information corresponding to the j+1th piece of data is obtained;
  • the intermediate fingerprint information corresponding to the Mth slice data is processed to obtain fingerprint information of the second to-be-sent data.
  • the intermediate fingerprint information corresponding to each piece of data other than the Mth piece of data is determined as the fingerprint information corresponding to each piece of data, and the second to be sent is sent.
  • the fingerprint information of the data is used as fingerprint information corresponding to the Mth slice data.
  • FIG. 1C is a schematic diagram of a process of calculating fingerprint information corresponding to data to be transmitted.
  • the intermediate fingerprint information sha1 corresponding to the first piece of data 101c is first calculated, and then the intermediate fingerprint information sha1 is updated by the second piece of data 102c to obtain the intermediate fingerprint information sha2 corresponding to the second piece of data 102c.
  • the intermediate fingerprint information sha2 is updated by the third piece of data 103c, and the intermediate fingerprint information sha3 corresponding to the third piece of data 103c is obtained.
  • the intermediate fingerprint information of each piece of data is calculated up to the Mth piece of data.
  • the intermediate fingerprint information shaM of the Mth block data is obtained according to the above method, the intermediate fingerprint information shaM of the Mth block data is updated by using information such as the length of the data to be sent, and the entire data to be sent is obtained. Corresponding fingerprint information.
  • receiving data verification failure indication information sent by the third device where the data verification failure indication information includes information indicating the kth piece of data; and according to the data verification failure indication information
  • the three devices transmit the kth piece of data.
  • the M-chip data is sent to the third device according to the data transmission indication information.
  • the fingerprint information of the fragmented data is correlated with the fragmentation sequence by the pre-stored fragment fingerprint information, so that the packet is falsified, forged, or fragmented.
  • the technical problem that the transmission error is found in the prior art after the entire data file needs to be downloaded is solved, and the cloud network disk user is prevented from uploading or downloading large files. The fatal impact.
  • the embodiment of the present application in the case that it is necessary to determine whether the file is transmitted in seconds, the time consumption and the calculation amount of the fingerprint information of the entire data are not increased, and the efficiency of the verification is effectively ensured.
  • Step S200 The sender divides the data to be sent into N pieces of data.
  • the sender of the data can divide the large data into N slices or N blocks for transmission.
  • the size of each block or each slice can be defined as 512 KB.
  • the sender may be an electronic device on the user side or a server on the network side, which is not limited herein.
  • Step S202 The sender calculates fingerprint information corresponding to each piece of data
  • the fragmentation data is sequential, from the first slice to the Nth slice.
  • the embodiment may calculate the first piece of data by using a corresponding fingerprint calculation algorithm to obtain fingerprint information; when calculating the fingerprint information corresponding to the j+1th piece of data, The j+1th piece of data may be updated to the fingerprint information corresponding to the jth piece of data to obtain updated data, and then the updated data is calculated by a corresponding fingerprint calculation algorithm to obtain fingerprint information.
  • the j is greater than or equal to 1, less than or equal to N-1. That is, actually, when the fingerprint information corresponding to the j+1th piece of data is calculated, the accumulated information may be calculated by accumulating the first piece of data to the j+1th piece of data to obtain the fingerprint information.
  • FIG. 3 is a schematic diagram showing the principle of calculating fingerprint information by the sender fragment according to the embodiment of the present application.
  • the fingerprint information corresponding to the second piece of data is updated after the second piece of data is updated to the fingerprint information corresponding to the first piece of data.
  • the updated data is obtained, and the fingerprint information obtained by the updated data is calculated; or the fingerprint information obtained by adding the second data to the first piece of data and calculating the accumulated data is calculated.
  • the fingerprint information corresponding to the tenth piece of data is obtained by updating the tenth piece of data to the fingerprint information corresponding to the ninth piece of data, and then obtaining the updated data, and then calculating the fingerprint information obtained by the updated data; or After the first piece of data is accumulated to the tenth piece of data, the fingerprint information obtained by the accumulated data is calculated.
  • Calculating the fingerprint information corresponding to the fragment data (non-first data) by the above embodiment is not only determined by the content of the individual fragment data, but also related to the fingerprint information of the previous fragment data, thereby establishing the fragment data.
  • the correlation between the fingerprint information and the fragmentation sequence can be solved in the subsequent corresponding verification process.
  • a single fragment data is verified but passed through.
  • the data file verification fails, which results in the need to download the entire data file to discover the technical problem of transmission error, and avoids the fatal impact of the cloud network disk user when uploading or downloading large files.
  • the fingerprint information in each embodiment of the present application includes, but is not limited to, a message digest generated by a Secure Hash Algorithm (SHA) calculation, or is calculated by a Message-Digest Algorithm (MD).
  • the generated message digest is calculated by SHA1, or the generated message digest is calculated by MD4 or MD5.
  • the protection range of the fingerprint information of the embodiment of the present application is included.
  • Step S204 Send the fingerprint information corresponding to each piece of data to the receiver.
  • Step S206 The receiving party receives the fingerprint information corresponding to each piece of data.
  • the receiving party after receiving the fingerprint information corresponding to each piece of data, stores the fingerprint information corresponding to each piece of data for subsequent verification processing.
  • Step S208 The receiving party determines, according to the fingerprint information, whether target data is stored in the database
  • the fingerprint information corresponding to each piece of data received includes fingerprint information f corresponding to the entire data.
  • the fingerprint information corresponding to the last piece of data ie, the Nth piece of data
  • the fingerprint information f corresponding to the entire data it is exactly the fingerprint information f corresponding to the entire data. Therefore, if it is determined that the target data is stored in the database according to the fingerprint information f, wherein the fingerprint information g corresponding to the target data matches the fingerprint information f, step S210 is performed; if the fingerprint information f is determined, the database is not stored. If there is target data, step S212 is performed.
  • Step S210 The receiving direction returns a data transmission success indication information to the sender.
  • the receiver determines that the target data is stored in the database according to the fingerprint information f, that is, the entire data that the sender is about to send is already stored in the database, so the data transmission success indication information may be returned or sent to the sender. (or data transmission completion indication information, etc.), the indication information is used to indicate to the sender that the entire data has been successfully transmitted or has been transmitted. In fact, the entire data does not need to be transmitted again, and the experience for the user is equivalent to seconds. Passed successfully.
  • Step S212 The receiving direction sends the data transmission indication information to the sender.
  • the receiving party determines that the target data is not stored in the database according to the fingerprint information f, it indicates that the data sent by the sender needs to be received, and the data transmission indication information is used to instruct the sender to perform data transmission.
  • the data transmission indication information may include the number of TCP physical links (ie, the number of channels), and the data of each TCP physical link. Information such as the offset and the size of each piece of data.
  • Step S214 The sender receives the data transmission indication information
  • Step S216 The sender sends the piece of data to the receiver according to the data transmission indication information.
  • the sender groups each piece of information according to the number of TCP physical links (ie, the number of channels) in the data transmission indication information, and the data offset of each TCP physical link and the size of each piece of data.
  • the data is sent to the recipient.
  • Step S218 The receiver receives the i-th slice data sent by the sender
  • the piece of data when a receiver receives a piece of data, the piece of data can be verified.
  • the i is greater than or equal to 1, less than or equal to N;
  • Step S220 In the case that the i is not equal to 1, the ith piece of data is updated to the pre-stored fingerprint information a, and the updated data is obtained;
  • the receiver updates the i-th slice data to the fingerprint information a to obtain the updated data.
  • the fingerprint information a in the embodiment of the present application is the fingerprint information corresponding to the i-th slice data stored in advance in step S206.
  • Step S222 calculating fingerprint information b of the updated data
  • the fingerprint calculation algorithm used by the receiver is consistent with the fingerprint calculation algorithm when the sender calculates the fingerprint information of the slice data, and the fingerprint information b of the updated data is calculated by the fingerprint calculation algorithm.
  • Step S224 determining whether the fingerprint information b matches the fingerprint information c corresponding to the pre-stored i-th slice data
  • step S230 is performed. If it is determined that the fingerprint information b matches the fingerprint information c, that is, the verification is passed, the corresponding processing may be continued, for example, the continuation of receiving the fragmentation data, and the like, which is not limited in the embodiment of the present application.
  • Step S226 In the case where the i is equal to 1, the fingerprint information d of the i-th slice data is calculated;
  • the fingerprint information d of the first piece of data is directly calculated by an algorithm consistent with the fingerprint calculation algorithm used when the sender calculates the fingerprint information of the shard data. Just fine.
  • Step S228 determining whether the fingerprint information d matches the fingerprint information e corresponding to the pre-stored i-th slice data
  • step S230 is performed. If it is determined that the fingerprint information d matches the fingerprint information e, that is, the verification is passed, the corresponding processing may be continued, for example, the continuation of receiving the fragmentation data, and the like, which is not limited in the embodiment of the present application.
  • the receiver calculates the fingerprint information corresponding to the fragment data, as shown in FIG. 4 , and the schematic diagram of the receiver fragment accumulation check method provided by the embodiment of the present application, for example, the fingerprint information corresponding to the second piece of data.
  • the updated data is obtained, and the fingerprint information obtained by the updated data is calculated; and the fingerprint information corresponding to the 10th piece of data is The 10th piece of data is updated to the fingerprint information corresponding to the 9th piece of data, and the updated data is obtained, and the fingerprint information obtained by the updated data is calculated.
  • Calculating the fingerprint information corresponding to the fragment data (non-first data) by the above embodiment is not only determined by the content of the individual fragment data, but also related to the fingerprint information of the previous fragment data, thereby establishing the fragment data.
  • the correlation between the fingerprint information and the fragmentation sequence can solve the problem in the prior art that in the case of tampering, forgery or sharding of the package, the single fragment data is verified but the entire data file is verified. If the test fails, the entire data file needs to be downloaded to discover the technical problem of transmission error, which avoids the fatal impact of the cloud network disk user when uploading or downloading large files.
  • Step S230 Send data verification failure indication information to the sender
  • the data check failure indication information is used to indicate that the sender transmits an error, needs to retransmit the entire data, or needs to retransmit the fragment data corresponding to the check error.
  • Step S232 The sender receives the data verification failure indication information sent by the receiver, and retransmits the to-be-sent data according to the data verification failure indication information.
  • the sender retransmits the entire data or retransmits the fragmentation data corresponding to the verification error according to the content indicated by the data verification failure indication information.
  • the ith chip data sent by the sender is received, and the ith chip data is updated to the pre-stored fingerprint information a to obtain updated data; the fingerprint information a is corresponding to the i-1th piece of data. Fingerprint information; calculating fingerprint information b of the updated data, and determining whether the fingerprint information b matches the fingerprint information c corresponding to the pre-stored i-th slice data; if the fingerprint information b does not match the fingerprint information c, Then, the data verification failure indication information is sent to the sender.
  • the fingerprint information of the fragmented data is correlated with the fragmentation order by the accumulated fingerprint information of the fragmentation, so that in the case of the packet being falsified, forged or fragmented, the single fragment data is verified.
  • Can not pass thus solving the technical problem in the prior art that the entire data file needs to be downloaded before the transmission error can be found, and the fatal impact of the cloud network disk user when uploading or downloading large files is avoided.
  • the embodiment of the present application in the case that it is necessary to determine whether the file is transmitted in seconds, the time consumption and the calculation amount of the fingerprint information of the entire data are not increased, and the efficiency of the verification is effectively ensured.
  • the present application further provides a data verification device, which is described in detail below with reference to the accompanying drawings:
  • FIG. 5 is a schematic structural diagram of a data verification apparatus according to an embodiment of the present application.
  • the data verification device 50 can include:
  • the data receiving module 501 receives the fingerprint information of the N pieces of data of the data to be sent sent by the second device, where the N pieces of data are obtained by dividing the data to be transmitted; and in the fingerprint information, the ith piece of data corresponds to
  • the first fingerprint information is fingerprint information obtained by updating the second fingerprint information corresponding to the i-th slice data by using the i-th slice data, and N and i are integers greater than one;
  • the data receiving module 501 further receives the ith piece of data sent by the second device;
  • the updating module 503 is configured to update the received second fingerprint information by using the ith piece of data to obtain third fingerprint information
  • the information sending module 505 when the third fingerprint information does not match the received first fingerprint information, sends data verification failure indication information to the second device.
  • the data receiving module 501 further receives the first piece of data of the to-be-sent data sent by the second device, and calculates fourth fingerprint information of the first piece of data; and the updating module 503 further determines the Whether the fourth fingerprint information matches the fifth fingerprint information corresponding to the received first piece of data; the information sending module 505 further proceeds to the case where the fourth fingerprint information does not match the fifth fingerprint information.
  • the second device sends data verification failure indication information.
  • the data receiving module 501 further receives the sixth fingerprint information corresponding to the data to be sent sent by the second device, and the updating module 503 further determines, by using the sixth fingerprint information, whether the database is stored.
  • the data transmission module 505 further transmits the data transmission indication information to the second device when it is determined that the data to be transmitted is not stored.
  • the data verification device 50 may further include: a data fragmentation module 507, a fingerprint calculation module 509, and a fingerprint information transmission module 511.
  • the data fragmentation module 507 can divide the second data to be sent into M pieces of data
  • the fingerprint calculation module 509 can calculate the fingerprint information corresponding to each piece of data, wherein the second fingerprint information corresponding to the j+1th piece of data in the M piece of data is the first corresponding to the jth piece of data by using the j+1th piece of data
  • the fingerprint information sending module 511 can send the fingerprint information corresponding to each piece of data to the third device.
  • the data verification apparatus 50 may include: a data receiving module 500, an update module 502, a calculation judging module 504, and an information sending module 506, where
  • the data receiving module 500 is configured to receive the ith piece of data sent by the sender; wherein the sender divides the data to be sent into N pieces of data for transmission; the i is greater than or equal to 1, less than or equal to the N;
  • the update module 502 is configured to update the i-th slice data to the pre-stored fingerprint information a to obtain updated data when the i is not equal to 1, and the fingerprint information a is corresponding to the i-th slice data. Fingerprint information;
  • the calculation determining module 504 is configured to calculate the fingerprint information b of the updated data, and determine whether the fingerprint information b matches the fingerprint information c corresponding to the pre-stored i-th slice data;
  • the information sending module 506 is configured to send data verification failure indication information to the sender if the fingerprint information b does not match the fingerprint information c.
  • the calculation judging module 504 is further configured to: when the i is equal to 1, calculate fingerprint information d of the i th piece data; determine whether the fingerprint information d and the pre-stored i th piece data Corresponding fingerprint information e matches;
  • the information sending module 506 is further configured to: when the fingerprint information d does not match the fingerprint information e, send data verification failure indication information to the sender.
  • the structure of another embodiment of the data verification apparatus is intended to include: a data receiving module 500, an update module 502, a calculation judging module 504, and information transmission.
  • the module 506 may further include a fingerprint information receiving module 508 and a data determining module 5010, where
  • the fingerprint information receiving module 508 is configured to receive the fingerprint information f corresponding to the to-be-sent data sent by the sender before the data receiving module 500 receives the ith data sent by the sender;
  • the data judging module 5010 is configured to determine, by using the fingerprint information f, whether the target data is stored in the database; wherein the fingerprint information g corresponding to the target data matches the fingerprint information f;
  • the information sending module 506 is further configured to: when it is determined that the target data is not stored, send the data transmission indication information to the sender.
  • the fingerprint information of the embodiment of the present application includes a message digest generated by the secure hash algorithm SHA calculation, or the generated message digest is calculated by the message digest algorithm MD.
  • the data verification apparatus 70 may include: at least one processor 701, such as a CPU, at least one network interface 704, User interface 703, memory 705, at least one communication bus 702, display screen 706.
  • the communication bus 702 is used to implement connection communication between these components.
  • the user interface 703 may include a touch screen or the like.
  • the network interface 704 can optionally include a standard wired interface, a wireless interface (such as a WI-FI interface).
  • the memory 705 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory, and the memory 705 includes a flash in the embodiment of the present application.
  • the memory 705 can optionally also be at least one storage system located remotely from the aforementioned processor 701. As shown in FIG. 7, an operating system, a network communication module, a user interface module, and a data verification program may be included in the memory 705 as a computer storage medium.
  • processor 701 can be used to call a data verification program stored in the memory 705, and perform processing operations when the computing device receives data in the embodiments of the present application.
  • processor 701 can:
  • the i-th slice data is updated to the pre-stored fingerprint information a to obtain updated data;
  • the fingerprint information a is fingerprint information corresponding to the i-th slice data;
  • the data verification failure indication information is transmitted to the sender through the network interface 704.
  • the processor 701 may further perform:
  • the fingerprint information d of the i-th slice data is calculated
  • the data verification failure indication information is transmitted to the sender through the network interface 704.
  • the 701 may also perform:
  • the data transmission indication information is transmitted to the sender through the network interface 704.
  • the fingerprint information includes a message digest generated by a secure hash algorithm SHA calculation, or a generated message digest is calculated by a message digest algorithm MD.
  • the data verification device 50 or the data verification device 70 in the embodiments of the present application may be corresponding to the specific implementation manners of any of the foregoing embodiments in the foregoing method embodiments, where No longer.
  • the data verification device 50 or the data verification device 70 may include, but is not limited to, a personal computer, a smart mobile terminal (such as a mobile phone, a mobile computer, a tablet), or the like, or an electronic device or terminal device.
  • the present application further provides a data transmitting apparatus, which is described in detail below with reference to the accompanying drawings:
  • FIG. 8 is a schematic structural diagram of a data transmitting apparatus according to an embodiment of the present application.
  • the data sending apparatus 80 may include: a data fragmentation module 800, a fingerprint calculation module 802, and a fingerprint information sending module 804.
  • the data fragmentation module 800 is configured to divide the data to be sent into N pieces of data
  • the fingerprint calculation module 802 is configured to calculate fingerprint information corresponding to each piece of data, wherein the fingerprint information corresponding to the first piece of data is fingerprint information obtained by calculating the first piece of data; the j+1th piece of data corresponds to The fingerprint information is fingerprint information obtained by calculating the updated data; the updated data is data obtained by updating the j+1th piece of data to the fingerprint information corresponding to the jth piece of data; the j is greater than Equal to 1, less than or equal to N-1;
  • the fingerprint information sending module 804 is configured to send the fingerprint information corresponding to each piece of data to the receiver.
  • the data sending apparatus 80 includes: a data fragmentation module 800, a fingerprint calculation module 802, and a fingerprint information transmission module 804.
  • the information receiving module 806 is configured to: after the fingerprint information sending module 804 sends the fingerprint information corresponding to each piece of data to the receiving party, receive the data transmission indication information sent by the receiving party;
  • the data sending module 808 is configured to send the piece of data to the receiver according to the data transmission indication information.
  • the information receiving module 806 is further configured to: after the data sending module 808 sends the piece of data to the receiver, receive data verification failure indication information sent by the receiver;
  • the retransmission module 8010 is configured to retransmit the to-be-sent data according to the data verification failure indication information.
  • the data transmitting apparatus 100 may include: at least one processor 1001, such as a CPU, at least one network interface 1004, and a user interface. 1003.
  • the communication bus 1002 is used to implement connection communication between these components.
  • the user interface 1003 may include a touch screen or the like.
  • the network interface 1004 can optionally include a standard wired interface, a wireless interface (such as a WI-FI interface).
  • the memory 1005 may be a high speed RAM memory or a non-volatile memory such as at least one disk memory, and the memory 1005 includes the flash in the embodiment of the present application.
  • the memory 1005 can also optionally be at least one storage system located remotely from the aforementioned processor 1001. As shown in FIG. 10, an operating system, a network communication module, a user interface module, and a data transmission program may be included in the memory 1005 as a computer storage medium.
  • processor 1001 can be used to call a data transmitting program stored in the memory 1005, which is a processing operation when the computing device transmits data in each embodiment of the present application.
  • processor 1001 can:
  • the fingerprint information corresponding to the first piece of data is fingerprint information obtained by calculating the first piece of data; and the fingerprint information corresponding to the j+1th piece of data is calculated Fingerprint information obtained by the updated data; the updated data is data after updating the j+1 piece of data to the fingerprint information corresponding to the jth piece of data; the j is greater than or equal to 1, less than or equal to N- 1;
  • the fingerprint information corresponding to each piece of data is transmitted to the receiver through the network interface 1004.
  • the device when a data verification program as shown in FIG. 7 and a data transmission program as shown in FIG. 10 are simultaneously stored in the memory of one device, the device has the data verification device as shown in FIG. 7 and The function of the data transmitting device shown in FIG.
  • the processor 1001 may further perform:
  • the piece of data is sent to the receiver through the network interface 1004 according to the data transmission indication information.
  • the processor 1001 may also perform:
  • the data to be transmitted is retransmitted through the network interface 1004 according to the data verification failure indication information.
  • the data transmitting device 80 or the data transmitting device 100 may include, but is not limited to, a personal computer, a smart mobile terminal (such as a mobile phone, a mobile computer, a tablet), and the like, or an electronic device or terminal device.
  • the present application further provides a data transmission system, which may include the data verification device described in FIG. 5 to FIG. 7 above, and FIG. 8 above.
  • the data transmitting apparatus described in FIG. For details of how the data transmission system implements the data transmission, reference may be made to the specific implementation manner of any of the foregoing embodiments in the foregoing method embodiments, and details are not described herein again.
  • the ith chip data sent by the sender is received, and the ith chip data is updated to the pre-stored fingerprint information a to obtain updated data; the fingerprint information a is corresponding to the i-1th piece of data. Fingerprint information; calculating fingerprint information b of the updated data, and determining whether the fingerprint information b matches the fingerprint information c corresponding to the pre-stored i-th slice data; if the fingerprint information b does not match the fingerprint information c, Then, the data verification failure indication information is sent to the sender.
  • the fingerprint information of the fragmented data is correlated with the fragmentation order by the accumulated fingerprint information of the fragmentation, so that in the case of the packet being falsified, forged or fragmented, the single fragment data is verified.
  • Can not pass thus solving the technical problem in the prior art that the entire data file needs to be downloaded before the transmission error can be found, and the fatal impact of the cloud network disk user when uploading or downloading large files is avoided.
  • the embodiment of the present application in the case that it is necessary to determine whether the file is transmitted in seconds, the time consumption and the calculation amount of the fingerprint information of the entire data are not increased, and the efficiency of the verification is effectively ensured.
  • the storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种数据校验方法,包括:接收第二设备发送的待发送数据的N片数据的指纹信息,其中,所述N片数据是将待发送数据进行分割得到的;所述指纹信息中,第i片数据对应的第一指纹信息为利用第i片数据对第i-1片数据对应的第二指纹信息进行更新后得到的指纹信息,N、i均为大于1的整数;接收第二设备发送的第i片数据;利用所述第i片数据对接收到的所述第二指纹信息进行更新,得到第三指纹信息;当所述第三指纹信息与接收到的所述第一指纹信息不匹配时,则向所述第二设备发送数据校验失败指示信息。。本申请还公开了一种数据发送方法、数据校验装置、数据发送装置及数据传输系统。

Description

数据校验方法、数据发送方法、相关装置、系统及存储介质
本申请要求于2017年03月21日提交中国专利局、申请号为201710170866.0、名称为“一种数据校验方法、数据发送方法、相关装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,尤其涉及数据校验方法、数据发送方法、数据接收装置、数据发送装置、数据传输系统及存储介质。
背景
云盘或云网盘是互联网存储工具,云盘是互联网云技术的产物,它通过互联网为企业和个人提供信息的储存,读取,下载等服务。具有安全稳定、海量存储的特点。
随着电子科技以及移动互联网技术的发展,移动电子设备(特别是智能移动设备)的功能越来越强大,用户可以通过移动电子设备来完成各种事务。当前云网盘业务也可向用户端的移动电子设备提供文件同步、备份和分享功能的云存储功能,用户只需在移动电子设备上安装相应的客户端,即可与云网盘业务的服务器端进行数据文件的传输。
现有技术中,对于数据传输过程正确性的校验,一般采用分片校验法。也就是说,数据发送方发送一片数据给数据接收方,数据发送方先用一种摘要算法算出摘要,然后把数据和摘要一起传给数据接收方,然后数据接收方用同样的摘要算法再计算一遍收到的数据,进行 摘要匹配比对。例如,传输控制协议(Transmission Control Protocol,TCP)协议的校验方法,在发送的TCP头部有一个Checksum(总和检验码或校验和)字段,通过计算校验和进行比对,来判断该数据片的正确性。
技术内容
本申请实施例公开了一种数据校验方法,应用于第一设备包括:
接收第二设备发送的待发送数据的N片数据的指纹信息,其中,所述N片数据是将待发送数据进行分割得到的;所述指纹信息中,第i片数据对应的第一指纹信息为利用第i片数据对第i-1片数据对应的第二指纹信息进行更新后得到的指纹信息,N、i均为大于1的整数;
接收第二设备发送的第i片数据;
利用所述第i片数据对接收到的所述第二指纹信息进行更新,得到第三指纹信息;
当所述第三指纹信息与接收到的所述第一指纹信息不匹配时,则向所述第二设备发送数据校验失败指示信息。
本申请实施例公开了一种数据发送方法,应用于第一设备,包括:
将待发送数据分成N片数据;
计算每片数据对应的指纹信息,其中所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;
将所述每片数据对应的指纹信息发送给第二设备。
本申请实施例还公开了一种数据校验装置,包括:处理器和存储器,所述存储器中存储有计算机可读指令,可以使所述处理器执行:
接收第二设备发送的待发送数据的N片数据的指纹信息,其中, 所述N片数据是将待发送数据进行分割得到的;所述指纹信息中,第i片数据对应的第一指纹信息为利用第i片数据对第i-1片数据对应的第二指纹信息进行更新后得到的指纹信息,N、i均为大于1的整数;
接收第二设备发送的第i片数据;
利用所述第i片数据对接收到的所述第二指纹信息进行更新,得到第三指纹信息;
当所述第三指纹信息与接收到的所述第一指纹信息不匹配时,则向所述第二设备发送数据校验失败指示信息。
本申请实施例还公开了一种数据发送装置,包括处理器和存储器,所述存储器中存储有计算机可读指令,可以使所述处理器执行:
将待发送数据分成N片数据;
计算每片数据对应的指纹信息,其中所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;
将所述每片数据对应的指纹信息发送给第二设备。
本申请实施例还公开了一种数据传输系统,包括上述的数据发送装置和上述的数据校验装置。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的数据校验方法或数据发送方法的场景架构图;
图1B是本申请实施例提供的数据传输方法的流程示意图;
图1C是本申请实施例提供的计算待发送数据对应的指纹信息的过程的示意图。
图2是本申请实施例提供的数据传输方法的流程示意图;
图3是本申请实施例提供的发送方分片计算指纹信息的原理示意图;
图4是本申请实施例提供的接收方分片累加校验方法的原理示意图;
图5A是本申请实施例提供的数据校验装置的结构示意图;
图5B是本申请实施例提供的数据校验装置的结构示意图;
图6是本申请提供的数据校验装置的另一实施例的结构意图;
图7是本申请提供的数据校验装置的另一实施例的结构示意图;
图8是本申请实施例提供的数据发送装置的结构示意图;
图9是本申请提供的数据发送装置的另一实施例的结构示意图;
图10是本申请提供的数据发送装置的另一实施例的结构示意图。
实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
如图1A示出的本申请实施例提供的数据校验方法或数据发送方法的场景架构图或系统架构图,电子设备101可以通过网络102与服务器103建立连接,进行数据交互。以云网盘为例,用户只需在电子设备101上安装相应的客户端,即可与提供云网盘业务的服务器端103进行数据文件的传输,包括将数据同步备份到服务器103,或者从服务器103下载所需的数据。当电子设备101将数据同步备份到服务器103时,该电子设备101即为数据的发送方,服务器103即为数据的接收方;当电子设备101从服务器103下载所需的数据时,该电子设备101即为数据的接收方,服务器103即为数据的发送方。本申请实施例将结合图1B至图4来详细说明发送方如何发送数据,接收 方如何进行数据校验。
需要说明的是,本申请实施例中的电子设备101包括但不限于个人计算机、智能移动终端(如移动电话、移动电脑、平板电脑)、个人数字助理(Personal Digital Assistant,PDA)、智能电视、智能手表、智能眼镜、智能手环等电子设备或终端设备。
图1B为在图1A所示系统架构图下的数据校验方法的流程示意图。如图1B所示,该数据校验方法可以由第一设备执行。第一设备可以是如图1A所示的电子设备101,或服务器103,也可以是其它应用场景中任意的需要进行数据传输的计算设备。该方法可以包括以下步骤:
步骤101b:接收第二设备发送的待发送数据的N片数据的指纹信息。其中,所述N片数据是将待发送数据进行分割得到的。所述指纹信息中,第i片数据对应的第一指纹信息为利用第i片数据对第i-1片数据对应的第二指纹信息进行更新后得到的指纹信息,N、i均为大于1的整数。
步骤102b:接收第二设备发送的第i片数据。
步骤103b:利用所述第i片数据对接收到的所述第二指纹信息进行更新,得到第三指纹信息。
步骤104b:当所述第三指纹信息与接收到的所述第一指纹信息不匹配时,则向所述第二设备发送数据校验失败指示信息。
在一些实例中,第一设备可以接收所述第二设备发送的所述待发送数据的第一片数据,计算所述第一片数据的第四指纹信息;判断所述第四指纹信息是否与接收到的所述第一片数据对应的第五指纹信息匹配;在所述第四指纹信息与所述第五指纹信息不匹配的情况下,则向所述第二设备发送数据校验失败指示信息。
在一些实例中,第一设备可以接收所述第二设备发送的所述待发送数据对应的第六指纹信息;通过所述第六指纹信息判断数据库中是否存储有所述待发送数据;当判断没有存储所述待发送数据,则向第 二设备发送数据传输指示信息。具体的,如果已经存储有所述待发送数据,也会相应的存储所述待发送数据对应的指纹信息,因此,在接收第二设备发送的第一片数据之前,接收所述第二设备发送的整个所述待发送数据对应的第六指纹信息,如果确定已经存储有与所述第六指纹信息相同的第七指纹信息,则确定已经存储有与所述第六指纹信息对应的待发送数据。
在一些实例中,所述指纹信息包括通过安全哈希算法SHA计算生成的消息摘要,或者通过消息摘要算法MD计算生成的消息摘要。
在一些实例中,当第一设备需要发送第二待发送数据时,第一设备可以将第二待发送数据分成M片数据;计算每片数据对应的指纹信息,其中,所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;将所述每片数据对应的指纹信息发送给第三设备。其中,M的大小由待发送数据的大小和所采用的指纹计算方法决定。
在一些实例中,第一设备可以将计算整个第二待发送数据对应的指纹信息的过程中的中间结果作为所述第二待发送数据的每片数据对应的指纹信息。也即,计算每片数据对应的指纹信息时,可以计算待发送数据的指纹信息。计算待发送数据的指纹信息的过程可以包括:
计算所述M片数据中第一片数据对应的中间指纹信息;
依次利用第j+1片数据对第j片数据对应的中间指纹信息进行更新,得到第j+1片数据对应的中间指纹信息;
对第M片数据对应的中间指纹信息进行处理,得到所述第二待发送数据的指纹信息。
在上述计算待发送数据的指纹信息的过程中,将除所述第M片数据之外各片数据对应的中间指纹信息确定为所述各片数据对应的指纹信息,将所述第二待发送数据的指纹信息作为所述第M片数据 对应的指纹信息。
图1C为计算待发送数据对应的指纹信息的过程的示意图。如图1C所示,首先计算得到第一片数据101c对应的中间指纹信息sha1,然后利用第2片数据102c对上述中间指纹信息sha1进行更新,得到第2片数据102c对应的中间指纹信息sha2,再利用第3片数据103c对上述中间指纹信息sha2进行更新,得到第3片数据103c对应的中间指纹信息sha3,按照此方法,计算各片数据的中间指纹信息,直至第M块数据。需要说明的是,当按照上述方法得到第M块数据的中间指纹信息shaM后,再利用上述待发送数据的长度等信息对第M块数据的中间指纹信息shaM进行更新,得到上述整个待发送数据对应的指纹信息。
在一些实例中,接收所述第三设备发送的数据校验失败指示信息,所述数据校验失败指示信息包括指示第k片数据的信息;根据所述数据校验失败指示信息向所述第三设备发送所述第k片数据。
在一些实例中,接收到所述第三设备发送的数据传输指示信息后,根据所述数据传输指示信息将所述M片数据发送给所述第三设备。
实施本申请实施例,通过接收方预存的分片指纹信息对根据进行校验,实现了分片数据的指纹信息与分片顺序具有了关联性,因此在包被篡改、伪造或分片乱序的情况下,单个分片数据校验不能通过,从而解决了现有技术中需要将整个数据文件下载下来后才能发现传输出错的技术问题,避免了云网盘用户在上传或下载大文件的时候造成的致命影响。并且,采用本申请实施例,在需要判断文件是否秒传的情况下,计算和校验整个数据的指纹信息的时间消耗与计算量并没有任何增加,有效保证了校验的效率。
下面结合图2示出的本申请实施例提供的数据传输方法的流程示意图,来详细说明本申请实施例提供的数据校验方法以及数据发送方法的技术方案,包括如下步骤:
步骤S200:发送方将待发送数据分成N片数据;
一些例子中,数据的发送方可以将大的数据分成N片或N块来传输,例如分成的每个块或每片的大小可以定义为512KB。需要说明的是,该发送方可以为用户侧的电子设备,也可以为网络侧的服务器,这里不做限定。
步骤S202:发送方计算每片数据对应的指纹信息;
一些例子中,分片数据是有顺序的,分别从第1片到第N片。本申请实施例在计算第1片数据对应的指纹信息时,具体可以通过相应的指纹计算算法计算该第1片数据来得到指纹信息;在计算第j+1片数据对应的指纹信息时,具体可以将该第j+1片数据更新(update)到第j片数据对应的指纹信息,得到更新后的数据,然后通过相应的指纹计算算法计算该更新后的数据来得到指纹信息。该j大于等于1,小于等于N-1。即,实际上,计算第j+1片数据对应的指纹信息时,也可以通过从第1片数据累加至第j+1片数据后,计算累加后的数据来得到指纹信息。
如图3示出的本申请实施例提供的发送方分片计算指纹信息的原理示意图,例如第2片数据对应的指纹信息是将该第2片数据更新到第1片数据对应的指纹信息后得到更新后的数据,再计算该更新后的数据所得到的指纹信息;或者是将第1片数据加上第2片数据后,计算累加后的数据所得到的指纹信息。又如第10片数据对应的指纹信息是将该第10片数据更新到第9片数据对应的指纹信息后得到更新后的数据,再计算该更新后的数据所得到的指纹信息;或者是通过从第1片数据累加至第10片数据后,计算累加后的数据所得到的指纹信息。
通过上述实施方式计算分片数据(非第1片数据)对应的指纹信息并非只由单独的分片数据的内容决定,还与自身前一分片数据的指纹信息有关,从而建立了分片数据的指纹信息与分片顺序的关联性,在后续对应的校验过程中即可以解决现有技术中在包被篡改、伪造或 分片乱序的情况下,单个分片数据校验通过但整个数据文件校验不通过,导致需要将整个数据文件下载下来后才能发现传输出错的技术问题,避免了云网盘用户在上传或下载大文件的时候造成的致命影响。
需要说明的是,本申请各个实施例中的指纹信息包括但不限于通过安全哈希算法(Secure Hash Algorithm,SHA)计算生成的消息摘要,或者通过消息摘要算法(Message-Digest Algorithm,MD)计算生成的消息摘要。例如,通过SHA1来计算生成消息摘要,或者通过MD4或MD5来计算生成消息摘要。只要是可以表征数据的特征信息,并且具有可以更新update属性的,都属于本申请实施例的指纹信息的保护范围。
步骤S204:将所述每片数据对应的指纹信息发送给接收方;
步骤S206:接收方接收所述每片数据对应的指纹信息;
一些例子中,接收方接收到每片数据对应的指纹信息后,存储该每片数据对应的指纹信息,以便后续进行校验处理。
步骤S208:接收方根据所述指纹信息,判断数据库中是否存储有目标数据;
一些例子中,接收到的每片数据对应的指纹信息包括整个数据对应的指纹信息f,例如根据上述步骤S202中计算指纹信息的实施方式,最后一片数据(即第N片数据)对应的指纹信息,正好就是整个数据对应的指纹信息f。因此,若根据该指纹信息f判断出数据库中存储有目标数据,其中该目标数据对应的指纹信息g与该指纹信息f匹配,则执行步骤S210;若根据该指纹信息f判断出数据库中没有存储有目标数据,则执行步骤S212。
步骤S210:接收方向发送方返回数据传输成功指示信息;
一些例子中,若接收方根据该指纹信息f判断出数据库中存储有目标数据,即表明数据库中已经存储有发送方即将发送过来的整个数据,因此可以向发送方返回或发送数据传输成功指示信息(或者数据传输完毕指示信息,等等),该指示信息用于向发送方表明整个数据 已经传输成功或已经传输完毕,实际上该整个数据不需要再传输一遍了,给用户的体验相当于秒传成功。
步骤S212:接收方向发送方发送数据传输指示信息;
一些例子中,若接收方根据该指纹信息f判断出数据库中没有存储有目标数据,即表明需要接收发送方发送的数据,该数据传输指示信息用于指示发送方进行数据发送。进一步地,由于通信双方可以协商好通过多个TCP物理链接来实现数据分块传输,那么该数据传输指示信息可以包括TCP物理链接的数量(即通道数),以及每个TCP物理链路的数据偏移量和每片数据的大小等信息。
步骤S214:发送方接收到该数据传输指示信息;
步骤S216:发送方根据该数据传输指示信息将该每片数据发送给所述接收方;
一些例子中,发送方根据该数据传输指示信息中的TCP物理链接的数量(即通道数),以及每个TCP物理链路的数据偏移量和每片数据的大小等信息,将该每片数据发送给接收方。
步骤S218:接收方接收发送方发送的第i片数据;
一些例子中,当接收方接收到某1片数据时,即可以对该片数据进行校验。所述i大于等于1,小于等于N;
步骤S220:在所述i不等于1的情况下,将所述第i片数据更新到预存的指纹信息a,得到更新后的数据;
一些例子中,当接收到第i片数据不为第1片数据时,接收方将该第i片数据update到指纹信息a,以得到更新后的数据。本申请实施例中的指纹信息a为步骤S206中预先存储的第i-1片数据对应的指纹信息。
步骤S222:计算所述更新后的数据的指纹信息b;
一些例子中,接收方使用的指纹计算算法与发送方计算分片数据的指纹信息时的指纹计算算法一致,通过该指纹计算算法计算该更新后的数据的指纹信息b。
步骤S224:判断所述指纹信息b是否与预存的所述第i片数据对应的指纹信息c匹配;
一些例子中,若判断出所述指纹信息b与所述指纹信息c不匹配的情况下,即校验不通过,则执行步骤S230。若判断所述指纹信息b与所述指纹信息c匹配的情况下,即校验通过,可以继续进行相应处理,比如继续接收分片数据,等等,本申请实施例不做限制。
步骤S226:在所述i等于1的情况下,计算所述第i片数据的指纹信息d;
一些例子中,当接收到第i片数据为第1片数据时,直接通过与发送方计算分片数据的指纹信息时使用的指纹计算算法一致的算法,计算该第1片数据的指纹信息d即可。
步骤S228:判断所述指纹信息d是否与预存的所述第i片数据对应的指纹信息e匹配;
一些例子中,若判断出所述指纹信息d与所述指纹信息e不匹配的情况下,即校验不通过,则执行步骤S230。若判断所述指纹信息d与所述指纹信息e匹配的情况下,即校验通过,可以继续进行相应处理,比如继续接收分片数据,等等,本申请实施例不做限制。
需要说明的是,接收方计算分片数据对应的指纹信息具体如图4示出的,本申请实施例提供的接收方分片累加校验方法的原理示意图,例如第2片数据对应的指纹信息是将该第2片数据更新到第1片数据对应的指纹信息后得到更新后的数据,再计算该更新后的数据所得到的指纹信息;又如第10片数据对应的指纹信息是将该第10片数据更新到第9片数据对应的指纹信息后得到更新后的数据,再计算该更新后的数据所得到的指纹信息。
通过上述实施方式计算分片数据(非第1片数据)对应的指纹信息并非只由单独的分片数据的内容决定,还与自身前一分片数据的指纹信息有关,从而建立了分片数据的指纹信息与分片顺序的关联性,在校验过程中即可以解决现有技术中在包被篡改、伪造或分片乱序的 情况下,单个分片数据校验通过但整个数据文件校验不通过,导致需要将整个数据文件下载下来后才能发现传输出错的技术问题,避免了云网盘用户在上传或下载大文件的时候造成的致命影响。
步骤S230:向该发送方发送数据校验失败指示信息;
一些例子中,该数据校验失败指示信息用于指示发送方传输出现错误,需要重传整个数据或者需要重传校验错误对应的分片数据。
步骤S232:发送方接收该接收方发送的数据校验失败指示信息,根据所述数据校验失败指示信息对所述待发送数据进行重传。
一些例子中,发送方根据数据校验失败指示信息指示的内容,重传整个数据或者重传校验错误对应的分片数据。
实施本申请实施例,通过接收发送方发送的第i片数据,将该第i片数据更新到预存的指纹信息a,得到更新后的数据;该指纹信息a为第i-1片数据对应的指纹信息;计算更新后的数据的指纹信息b,并判断该指纹信息b是否与预存的第i片数据对应的指纹信息c匹配;在该指纹信息b与该指纹信息c不匹配的情况下,则向该发送方发送数据校验失败指示信息。即通过分片累加指纹信息进行校验,实现了分片数据的指纹信息与分片顺序具有了关联性,因此在包被篡改、伪造或分片乱序的情况下,单个分片数据校验不能通过,从而解决了现有技术中需要将整个数据文件下载下来后才能发现传输出错的技术问题,避免了云网盘用户在上传或下载大文件的时候造成的致命影响。并且,采用本申请实施例,在需要判断文件是否秒传的情况下,计算和校验整个数据的指纹信息的时间消耗与计算量并没有任何增加,有效保证了校验的效率。
为了便于更好地实施本申请实施例的上述方案,本申请还对应提供了一种数据校验装置,下面结合附图来进行详细说明:
如图5A和5B示出的本申请实施例提供的数据校验装置的结构示意图。在本申请的一些实例中,如图5A所示,数据校验装置50可以包括:
数据接收模块501,接收第二设备发送的待发送数据的N片数据的指纹信息,其中,所述N片数据是将待发送数据进行分割得到的;所述指纹信息中,第i片数据对应的第一指纹信息为利用第i片数据对第i-1片数据对应的第二指纹信息进行更新后得到的指纹信息,N、i均为大于1的整数;
所述数据接收模块501,进一步接收第二设备发送的第i片数据;
更新模块503,利用所述第i片数据对接收到的所述第二指纹信息进行更新,得到第三指纹信息;
信息发送模块505,当所述第三指纹信息与接收到的所述第一指纹信息不匹配时,则向所述第二设备发送数据校验失败指示信息。
在一些实例中,数据接收模块501进一步接收所述第二设备发送的所述待发送数据的第一片数据,计算所述第一片数据的第四指纹信息;更新模块503,进一步判断所述第四指纹信息是否与接收到的所述第一片数据对应的第五指纹信息匹配;信息发送模块505在所述第四指纹信息与所述第五指纹信息不匹配的情况下,则进一步向所述第二设备发送数据校验失败指示信息。
在一些实例中,数据接收模块501,进一步接收所述第二设备发送的所述待发送数据对应的第六指纹信息;更新模块503,进一步通过所述第六指纹信息判断数据库中是否存储有所述待发送数据;信息发送模块505当判断没有存储所述待发送数据,则进一步向第二设备发送数据传输指示信息。
在一些实例中,所述数据校验装置50还可以包括:数据分片模块507、指纹计算模块509以及指纹信息发送模块511。
数据分片模块507可以将第二待发送数据分成M片数据;
指纹计算模块509可以计算每片数据对应的指纹信息,其中,所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;
指纹信息发送模块511可以将所述每片数据对应的指纹信息发送给第三设备。
在本申请另一些实例中,如图5B所示,所述数据校验装置50可以包括:数据接收模块500、更新模块502、计算判断模块504和信息发送模块506,其中,
数据接收模块500用于接收发送方发送的第i片数据;其中所述发送方将待发送数据分成N片数据进行发送;所述i大于等于1,小于等于所述N;
更新模块502用于在所述i不等于1的情况下,将所述第i片数据更新到预存的指纹信息a,得到更新后的数据;所述指纹信息a为第i-1片数据对应的指纹信息;
计算判断模块504用于计算所述更新后的数据的指纹信息b,并判断所述指纹信息b是否与预存的所述第i片数据对应的指纹信息c匹配;
信息发送模块506用于在所述指纹信息b与所述指纹信息c不匹配的情况下,则向所述发送方发送数据校验失败指示信息。
一些例子中,计算判断模块504还用于,在所述i等于1的情况下,计算所述第i片数据的指纹信息d;判断所述指纹信息d是否与预存的所述第i片数据对应的指纹信息e匹配;
信息发送模块506还用于,在所述指纹信息d与所述指纹信息e不匹配的情况下,则向所述发送方发送数据校验失败指示信息。
进一步地,如图6示出的本申请提供的数据校验装置的另一实施例的结构意图,数据校验装置50可以包括:数据接收模块500、更新模块502、计算判断模块504和信息发送模块506外,还可以包括指纹信息接收模块508和数据判断模块5010,其中,
指纹信息接收模块508用于在数据接收模块500接收发送方发送的第i片数据之前,接收发送方发送的所述待发送数据对应的指纹信息f;
数据判断模块5010用于通过所述指纹信息f判断数据库中是否存储有目标数据;其中所述目标数据对应的指纹信息g与所述指纹信息f匹配;
信息发送模块506还用于,当判断出不存储有目标数据,则向发送方发送数据传输指示信息。
一些例子中,本申请实施例的指纹信息包括通过安全哈希算法SHA计算生成的消息摘要,或者通过消息摘要算法MD计算生成的消息摘要。
再进一步地,如图7示出的本申请提供的数据校验装置的另一实施例的结构示意图,数据校验装置70可以包括:至少一个处理器701,例如CPU,至少一个网络接口704,用户接口703,存储器705,至少一个通信总线702、显示屏706。其中,通信总线702用于实现这些组件之间的连接通信。其中,用户接口703可以包括触摸屏等等。网络接口704可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器705可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,存储器705包括本申请实施例中的flash。存储器705可选的还可以是至少一个位于远离前述处理器701的存储系统。如图7所示,作为一种计算机存储介质的存储器705中可以包括操作系统、网络通信模块、用户接口模块以及数据校验程序。
在图7所示的数据校验装置70中,处理器701可以用于调用存储器705中存储的数据校验程序,并执行本申请各实施例中计算设备接收数据时的处理操作。例如,处理器701可以:
通过网络接口704接收发送方发送的第i片数据;其中所述发送方将待发送数据分成N片数据进行发送;所述i大于等于1,小于等于所述N;
在所述i不等于1的情况下,将所述第i片数据更新到预存的指纹信息a,得到更新后的数据;所述指纹信息a为第i-1片数据对应的 指纹信息;
计算所述更新后的数据的指纹信息b,并判断所述指纹信息b是否与预存的所述第i片数据对应的指纹信息c匹配;
在所述指纹信息b与所述指纹信息c不匹配的情况下,则通过网络接口704向所述发送方发送数据校验失败指示信息。
一些例子中,处理器701通过网络接口704接收发送方发送的第i片数据之后,还可以执行:
在所述i等于1的情况下,计算所述第i片数据的指纹信息d;
判断所述指纹信息d是否与预存的所述第i片数据对应的指纹信息e匹配;
在所述指纹信息d与所述指纹信息e不匹配的情况下,则通过网络接口704向所述发送方发送数据校验失败指示信息。
一些例子中,处理器701通过网络接口704接收发送方发送的第i片数据之前,还可以执行:
通过网络接口704接收发送方发送的所述待发送数据对应的指纹信息f;
通过所述指纹信息f判断数据库中是否存储有目标数据;其中所述目标数据对应的指纹信息g与所述指纹信息f匹配;
当判断出不存储有目标数据,则通过网络接口704向发送方发送数据传输指示信息。
一些例子中,所述指纹信息包括通过安全哈希算法SHA计算生成的消息摘要,或者通过消息摘要算法MD计算生成的消息摘要。
需要说明的是,本申请实施例中的数据校验装置50或数据校验装置70中各模块的功能可对应参考上述各方法实施例中图2至图4任意实施例的具体实现方式,这里不再赘述。数据校验装置50或数据校验装置70可以包括但不限于个人计算机、智能移动终端(如移动电话、移动电脑、平板电脑)、等电子设备或终端设备。
为了便于更好地实施本申请实施例的上述方案,本申请还对应提供了一种数据发送装置,下面结合附图来进行详细说明:
如图8示出的本申请实施例提供的数据发送装置的结构示意图,数据发送装置80可以包括:数据分片模块800、指纹计算模块802和指纹信息发送模块804,其中,
数据分片模块800用于将待发送数据分成N片数据;
指纹计算模块802用于计算每片数据对应的指纹信息,其中所述第1片数据对应的指纹信息为通过计算所述第1片数据所得到的指纹信息;所述第j+1片数据对应的指纹信息为通过计算更新后的数据所得到的指纹信息;所述更新后的数据为将所述第j+1片数据更新到第j片数据对应的指纹信息后的数据;所述j大于等于1,小于等于N-1;
指纹信息发送模块804用于将所述每片数据对应的指纹信息发送给接收方。
一些例子中,如图9示出的本申请提供的数据发送装置的另一实施例的结构示意图,数据发送装置80包括:数据分片模块800、指纹计算模块802和指纹信息发送模块804外,还可以包括:信息接收模块806、数据发送模块808和重传模块8010,其中,
信息接收模块806用于在指纹信息发送模块804将所述每片数据对应的指纹信息发送给接收方之后,接收到所述接收方发送的数据传输指示信息;
数据发送模块808用于根据所述数据传输指示信息将所述每片数据发送给所述接收方。
进一步地,信息接收模块806还用于,在数据发送模块808将所述每片数据发送给所述接收方之后,接收所述接收方发送的数据校验失败指示信息;
重传模块8010用于根据所述数据校验失败指示信息对所述待发送数据进行重传。
再进一步地,如图10示出的本申请提供的数据发送装置的另一 实施例的结构示意图,数据发送装置100可以包括:至少一个处理器1001,例如CPU,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002、显示屏1006。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括触摸屏等等。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器,存储器1005包括本申请实施例中的flash。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储系统。如图10所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据发送程序。
在图10所示的数据发送装置100中,处理器1001可以用于调用存储器1005中存储的数据发送程序,本申请各实施例中计算设备发送数据时的处理操作。例如,处理器1001可以:
将待发送数据分成N片数据;
计算每片数据对应的指纹信息,其中所述第1片数据对应的指纹信息为通过计算所述第1片数据所得到的指纹信息;所述第j+1片数据对应的指纹信息为通过计算更新后的数据所得到的指纹信息;所述更新后的数据为将所述j+1片数据更新到第j片数据对应的指纹信息后的数据;所述j大于等于1,小于等于N-1;
通过网络接口1004将所述每片数据对应的指纹信息发送给接收方。
一些实例中,当一个装置的存储器中同时存储有如图7所示的数据校验程序和如图10所示的数据发送程序时,则该装置同时具有如图7所示的数据校验装置和如图10所示的数据发送装置的功能。
一些例子中,处理器1001通过网络接口1004将所述每片数据对应的指纹信息发送给接收方之后,还可以执行:
通过网络接口1004接收到所述接收方发送的数据传输指示信息 后,根据所述数据传输指示信息通过网络接口1004将所述每片数据发送给所述接收方。
一些例子中,处理器1001通过网络接口1004将所述每片数据发送给所述接收方之后,还可以执行:
通过网络接口1004接收所述接收方发送的数据校验失败指示信息;
根据所述数据校验失败指示信息通过网络接口1004对所述待发送数据进行重传。
需要说明的是,本申请实施例中的数据发送装置80或数据发送装置100中各模块的功能可对应参考上述各方法实施例中图2至图4任意实施例的具体实现方式,这里不再赘述。数据发送装置80或数据发送装置100可以包括但不限于个人计算机、智能移动终端(如移动电话、移动电脑、平板电脑)、等电子设备或终端设备。
为了便于更好地实施本申请实施例的上述方案,本申请还对应提供了一种数据传输系统,该数据传输系统可以包括上述图5至图7所述的数据校验装置,以及上述图8至图10所述的数据发送装置。该数据传输系统具体如何实现数据传输,可以对应参考上述各方法实施例中图2至图4任意实施例的具体实现方式,这里不再赘述。
实施本申请实施例,通过接收发送方发送的第i片数据,将该第i片数据更新到预存的指纹信息a,得到更新后的数据;该指纹信息a为第i-1片数据对应的指纹信息;计算更新后的数据的指纹信息b,并判断该指纹信息b是否与预存的第i片数据对应的指纹信息c匹配;在该指纹信息b与该指纹信息c不匹配的情况下,则向该发送方发送数据校验失败指示信息。即通过分片累加指纹信息进行校验,实现了分片数据的指纹信息与分片顺序具有了关联性,因此在包被篡改、伪造或分片乱序的情况下,单个分片数据校验不能通过,从而解决了现有技术中需要将整个数据文件下载下来后才能发现传输出错的技术 问题,避免了云网盘用户在上传或下载大文件的时候造成的致命影响。并且,采用本申请实施例,在需要判断文件是否秒传的情况下,计算和校验整个数据的指纹信息的时间消耗与计算量并没有任何增加,有效保证了校验的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。

Claims (20)

  1. 一种数据校验方法,应用于第一设备,包括:
    接收第二设备发送的待发送数据的N片数据的指纹信息,其中,所述N片数据是将待发送数据进行分割得到的;所述指纹信息中,第i片数据对应的第一指纹信息为利用第i片数据对第i-1片数据对应的第二指纹信息进行更新后得到的指纹信息,N、i均为大于1的整数;
    接收第二设备发送的第i片数据;
    利用所述第i片数据对接收到的所述第二指纹信息进行更新,得到第三指纹信息;
    当所述第三指纹信息与接收到的所述第一指纹信息不匹配时,则向所述第二设备发送数据校验失败指示信息。
  2. 如权利要求1所述的方法,进一步包括:
    接收所述第二设备发送的所述待发送数据的第一片数据,计算所述第一片数据的第四指纹信息;
    判断所述第四指纹信息是否与接收到的所述第一片数据对应的第五指纹信息匹配;
    在所述第四指纹信息与所述第五指纹信息不匹配的情况下,则向所述第二设备发送数据校验失败指示信息。
  3. 如权利要求2所述的方法,进一步包括:
    接收所述第二设备发送的所述待发送数据对应的第六指纹信息;
    通过所述第六指纹信息判断数据库中是否存储有所述待发送数据;
    当判断没有存储所述待发送数据,则向第二设备发送数据传输指示信息。
  4. 如权利要求1-3任一项所述的方法,其中,所述指纹信息包 括通过安全哈希算法SHA计算生成的消息摘要,或者通过消息摘要算法MD计算生成的消息摘要。
  5. 如权利要求1所述的方法,进一步包括:
    将第二待发送数据分成M片数据;
    计算所述M片数据中每片数据对应的指纹信息,其中,所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;
    将所述每片数据对应的指纹信息发送给第三设备。
  6. 如权利要求5所述的方法,其中,计算所述M片数据中每片数据对应的指纹信息,包括:
    计算所述第二待发送数据的指纹信息;
    其中,计算所述第二待发送数据的指纹信息包括:
    计算所述M片数据中第一片数据对应的中间指纹信息;
    依次利用第j+1片数据对第j片数据对应的中间指纹信息进行更新,得到第j+1片数据对应的中间指纹信息;
    对第M片数据对应的中间指纹信息进行处理,得到所述第二待发送数据的指纹信息;
    将除所述第M片数据之外各片数据对应的中间指纹信息确定为所述各片数据对应的指纹信息;
    将所述第二待发送数据的指纹信息作为所述第M片数据对应的指纹信息。
  7. 如权利要求5所述的方法,其中,所述方法进一步包括:
    接收所述第三设备发送的数据校验失败指示信息,所述数据校验失败指示信息包括指示第k片数据的信息;
    根据所述数据校验失败指示信息向所述第三设备发送所述第k片数据。
  8. 如权利要求5所述的方法,其中,所述方法进一步包括:
    接收到所述第三设备发送的数据传输指示信息后,根据所述数据传输指示信息将所述M片数据发送给所述第三设备。
  9. 一种数据发送方法,应用于第一设备,包括:
    将待发送数据分成N片数据;
    计算每片数据对应的指纹信息,其中所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;
    将所述每片数据对应的指纹信息发送给第二设备。
  10. 如权利要求9所述的方法,其中,所述计算每片数据对应的指纹信息,包括:
    计算所述第二待发送数据的指纹信息;
    其中,计算所述第二待发送数据的指纹信息包括:
    计算所述M片数据中第一片数据对应的中间指纹信息;
    依次利用第j+1片数据对第j片数据对应的中间指纹信息进行更新,得到第j+1片数据对应的中间指纹信息;
    对第M片数据对应的中间指纹信息进行处理,得到所述第二待发送数据的指纹信息;
    将除所述第M片数据之外各片数据对应的中间指纹信息确定为所述各片数据对应的指纹信息;
    将所述第二待发送数据的指纹信息作为所述第M片数据对应的指纹信息。
  11. 如权利要求9所述的方法,进一步包括:
    接收到所述第二设备发送的数据传输指示信息后,根据所述数据传输指示信息将所述M片数据发送给所述第二设备。
  12. 如权利要求9所述的方法,进一步包括:
    接收所述第二设备发送的数据校验失败指示信息,所述数据校验失败指示信息包括指示第k片数据的信息;
    根据所述数据校验失败指示信息将所述第k片数据发送给所述第二设备。
  13. 一种数据校验装置,包括:处理器和存储器,所述存储器中存储有计算机可读指令,可以使所述处理器执行:
    接收第二设备发送的待发送数据的N片数据的指纹信息,其中,所述N片数据是将待发送数据进行分割得到的;所述指纹信息中,第i片数据对应的第一指纹信息为利用第i片数据对第i-1片数据对应的第二指纹信息进行更新后得到的指纹信息,N、i均为大于1的整数;
    接收第二设备发送的第i片数据;
    利用所述第i片数据对接收到的所述第二指纹信息进行更新,得到第三指纹信息;
    当所述第三指纹信息与接收到的所述第一指纹信息不匹配时,则向所述第二设备发送数据校验失败指示信息。
  14. 如权利要求13所述的装置,其中,所述指令可以使所述处理器:接收所述第二设备发送的所述待发送数据的第一片数据,计算所述第一片数据的第四指纹信息;
    判断所述第四指纹信息是否与接收到的所述第一片数据对应的第五指纹信息匹配;
    在所述第四指纹信息与所述第五指纹信息不匹配的情况下,则向 所述第二设备发送数据校验失败指示信息。
  15. 如权利要求14所述的装置,其中,所述指令可以使所述处理器:
    在接收第二设备发送的第一片数据之前,接收第二设备发送的所述待发送数据对应的第六指纹信息;
    通过所述第六指纹信息判断数据库中是否存储有所述待发送数据;
    当判断没有存储有所述待发送数据,则向第二设备发送数据传输指示信息。
  16. 如权利要求13所述的装置,其中,所述指令可以使所述处理器:
    将第二待发送数据分成M片数据;
    计算所述M片数据中每片数据对应的指纹信息,其中,所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;
    将所述每片数据对应的指纹信息发送给第三设备。
  17. 如权利要求16所述的装置,其中,所述指令可以使所述处理器:
    计算所述第二待发送数据的指纹信息;
    其中,计算所述第二待发送数据的指纹信息包括:
    计算所述M片数据中第一片数据对应的中间指纹信息;
    依次利用第j+1片数据对第j片数据对应的中间指纹信息进行更新,得到第j+1片数据对应的中间指纹信息;
    对第M片数据对应的中间指纹信息进行处理,得到所述第二待 发送数据的指纹信息;
    将除所述第M片数据之外各片数据对应的中间指纹信息确定为所述各片数据对应的指纹信息;
    将所述第二待发送数据的指纹信息作为所述第M片数据对应的指纹信息。
  18. 一种数据发送装置,其中,包括处理器和存储器,所述存储器中存储有计算机可读指令,可以使所述处理器执行:
    将待发送数据分成N片数据;
    计算每片数据对应的指纹信息,其中所述M片数据中第j+1片数据对应的第二指纹信息为利用第j+1片数据对第j片数据对应的第三指纹信息进行更新后得到的指纹信息,M、j均为大于1的整数;
    将所述每片数据对应的指纹信息发送给第二设备。
  19. 如权利要求18所述的装置,其中,所述指令可以使所述处理器:
    计算所述第二待发送数据的指纹信息;
    其中,计算所述第二待发送数据的指纹信息包括:
    计算所述M片数据中第一片数据对应的中间指纹信息;
    依次利用第j+1片数据对第j片数据对应的中间指纹信息进行更新,得到第j+1片数据对应的中间指纹信息;
    对第M片数据对应的中间指纹信息进行处理,得到所述第二待发送数据的指纹信息;
    将除所述第M片数据之外各片数据对应的中间指纹信息确定为所述各片数据对应的指纹信息;
    将所述第二待发送数据的指纹信息作为所述第M片数据对应的指纹信息。
  20. 一种非易失性计算机可读存储介质,存储有计算机可读指令, 可以使至少一个处理器执行如权利要求1-12任一项所述的方法。
PCT/CN2018/079460 2017-03-21 2018-03-19 数据校验方法、数据发送方法、相关装置、系统及存储介质 WO2018171550A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18772511.4A EP3606007B1 (en) 2017-03-21 2018-03-19 Data verification method, data transmission method, related devices, system and storage medium
US16/376,495 US10949645B2 (en) 2017-03-21 2019-04-05 Method, apparatus, and storage medium for data verification

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710170866.0 2017-03-21
CN201710170866.0A CN108632318B (zh) 2017-03-21 2017-03-21 一种数据校验方法、数据发送方法、相关装置及系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/376,495 Continuation US10949645B2 (en) 2017-03-21 2019-04-05 Method, apparatus, and storage medium for data verification

Publications (1)

Publication Number Publication Date
WO2018171550A1 true WO2018171550A1 (zh) 2018-09-27

Family

ID=63585028

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/079460 WO2018171550A1 (zh) 2017-03-21 2018-03-19 数据校验方法、数据发送方法、相关装置、系统及存储介质

Country Status (4)

Country Link
US (1) US10949645B2 (zh)
EP (1) EP3606007B1 (zh)
CN (1) CN108632318B (zh)
WO (1) WO2018171550A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049748B (zh) * 2019-12-13 2022-11-29 浙江同花顺智能科技有限公司 一种行情数据的传输方法、装置、设备及存储介质
CN113543100A (zh) * 2021-07-08 2021-10-22 上海瓶钵信息科技有限公司 基于蓝牙的端到端通信协议实现方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101651709A (zh) * 2009-09-01 2010-02-17 中国科学院声学研究所 一种p2p下载文件完整性校验方法
CN101854241A (zh) * 2009-03-30 2010-10-06 上海聚力传媒技术有限公司 一种用于对网络传输的数据块进行验证的方法和装置
CN102064906A (zh) * 2009-11-18 2011-05-18 突触计算机系统(上海)有限公司 一种对数据块进行校验的方法和装置
CN102882961A (zh) * 2012-09-24 2013-01-16 华为技术有限公司 数据校验方法及服务器
US8407186B1 (en) * 2009-03-31 2013-03-26 Symantec Corporation Systems and methods for data-selection-specific data deduplication

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640294B2 (en) * 2001-12-27 2003-10-28 Storage Technology Corporation Data integrity check method using cumulative hash function
US7587064B2 (en) * 2004-02-03 2009-09-08 Hrl Laboratories, Llc Active learning system for object fingerprinting
US7539871B1 (en) * 2004-02-23 2009-05-26 Sun Microsystems, Inc. System and method for identifying message propagation
WO2006109515A1 (ja) * 2005-03-31 2006-10-19 Pioneer Corporation 操作者認識装置、操作者認識方法、および、操作者認識プログラム
CN101131718B (zh) * 2006-08-22 2012-05-23 华为技术有限公司 一种受保护内容完整性验证的方法、设备及系统
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和系统
US8774455B2 (en) * 2011-03-02 2014-07-08 Raf Technology, Inc. Document fingerprinting
KR101252454B1 (ko) * 2011-04-07 2013-04-16 주식회사 슈프리마 대표 지문 템플릿 생성 장치 및 방법
US8761799B2 (en) * 2011-07-21 2014-06-24 At&T Mobility Ii Llc Location analytics employing timed fingerprint location information
CN102968600B (zh) * 2012-10-30 2017-02-15 国网电力科学研究院 一种基于指纹信息植入的敏感数据文件的全生命周期管理方法
US9906367B2 (en) * 2014-08-05 2018-02-27 Sap Se End-to-end tamper protection in presence of cloud integration
US10339124B2 (en) * 2015-05-27 2019-07-02 Quest Software Inc. Data fingerprint strengthening
GB2541950B (en) * 2015-09-07 2020-01-08 Arm Ip Ltd Methods for verifying data integrity

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854241A (zh) * 2009-03-30 2010-10-06 上海聚力传媒技术有限公司 一种用于对网络传输的数据块进行验证的方法和装置
US8407186B1 (en) * 2009-03-31 2013-03-26 Symantec Corporation Systems and methods for data-selection-specific data deduplication
CN101651709A (zh) * 2009-09-01 2010-02-17 中国科学院声学研究所 一种p2p下载文件完整性校验方法
CN102064906A (zh) * 2009-11-18 2011-05-18 突触计算机系统(上海)有限公司 一种对数据块进行校验的方法和装置
CN102882961A (zh) * 2012-09-24 2013-01-16 华为技术有限公司 数据校验方法及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3606007A4 *

Also Published As

Publication number Publication date
US20190236331A1 (en) 2019-08-01
CN108632318A (zh) 2018-10-09
US10949645B2 (en) 2021-03-16
EP3606007A1 (en) 2020-02-05
CN108632318B (zh) 2022-02-22
EP3606007B1 (en) 2022-01-05
EP3606007A4 (en) 2020-03-04

Similar Documents

Publication Publication Date Title
CN104539739B (zh) 一种文件上传的系统、方法及装置
CN104955050A (zh) 合成消息验证码
US8976814B2 (en) Method of transporting data from sending node to destination node
CN110581812A (zh) 一种数据报文的处理方法和装置
WO2022017529A1 (zh) 数据传输方法、系统、电子设备及存储介质
CN113841359A (zh) 用于在区块链网络中传播区块的方法和装置
WO2018171550A1 (zh) 数据校验方法、数据发送方法、相关装置、系统及存储介质
CN110650097B (zh) 一种数据传播方法、装置以及计算机可读存储介质
CN111857609A (zh) 一种上传云打印日志的方法、装置和计算机存储介质
CN113259989B (zh) 数据重传方法、装置及电子设备
CN107645357A (zh) 传输文件不完整的恢复方法及装置
CN115361455B (zh) 一种数据传输存储方法、装置以及计算机设备
CN110585724A (zh) 游戏客户端中的表格数据更新方法、装置
CN116389455A (zh) 一种文件传输方法、系统及电子设备
US9294409B2 (en) Reducing round-trip times for TCP communications
CN113364790B (zh) 数据传输方法及装置
CN115277649A (zh) 多媒体会议场景下的文档协同编辑的方法及装置
CN115150333A (zh) 拥塞控制方法、装置、计算机设备和存储介质
WO2021036189A1 (zh) Rdma数据发送及接收方法、电子设备及可读存储介质
CN112910643A (zh) 一种区块链中随机数的生成方法及装置
JP2009044695A (ja) 通信制御方法、送信装置、およびコンピュータプログラム
JP2009044694A (ja) データユニットの送信回数のカウント方法、カウント装置、送信装置、およびコンピュータプログラム
JP2016195371A (ja) 通信システム、通信装置、通信方法、及びプログラム
CN110311750B (zh) 一种数据传输方法、系统及服务器
Caini et al. DTNperf_2: a Performance Evaluation tool for Delay/Disruption Tolerant Networking

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18772511

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018772511

Country of ref document: EP

Effective date: 20191021