一种文档版本化的方法

文档序号:7626973阅读:82来源:国知局
专利名称:一种文档版本化的方法
技术领域
本发明属于文件校验领域,并通过文件校验技术米实现文档的版本化.
背景技术
目前,MD5、SHA-I、CRC32是文件校验领域常用的Hash算法,每种算法都是对文件 提取特征产生序列号,通过对序列号的对比来确认数据是否相同,用来判断数据在传输过 程中是不是有所丢失或者被调包。CRC32算法只能验证数据的完整性,即数据传输过程中 数据的完整性,对两个同样大小的数据无法判断其内容是否一样。MD5和SHA-I算法,可以 比较出相同的数据,只有完全相同的数据才会产生相同的MD5和SHA-I序列号,此时,数据 大小必然相同,也间接验证了数据传输中的完整性。但是MD5和SHA-I算法有小概率会出 现数据不同但提取特征得到的序列号相同的情况,此时以序列号做判断就会出现错误的结 果,所以任一 MD5和SHA-I算法的单独使用,都会有小概率的出错现象。单独的一次使用 CRC32、MD5、SHA-1算法的安全性也不高,很有可能出现传输前验证是正确的,但在传输过程 中数据却被篡改了。CRC32、MD5、SHA-I算法的运用又直接关系着文档版本化的实现,所以 以上问题同样会制约着文档版本化的正确性和安全性。

发明内容
本发明要解决的技术问题是提供一种保证正确性和安全性的文档版本化的方法。为解决上述的技术问题,本发明的技术方案为结合MD5、SHA-U CRC32三种算法, 实现文档的版本化。形成第一版本的过程包括以下步骤1)客户端将待发送的文档进行MD5和SHA-I特征提取,分别形成一个MD5和SHA-I 序列号,将MD5和SHA-I序列号发送给服务器。2)客户端将待发送的文档分成多个固定大小的数据包,通过CRC32算法对每一数 据包进行特征提取生成对应的CRC32序列号,将每一组对应的CRC32序列号和数据包按序 发送给服务器;3)服务器接收到每一组对应的CRC32序列号和数据包后,用CRC32算法对数据包 提取特征,将得到的序列号与客户端发送的对应此数据包的序列号做对比,如果得出相同 的结果,说明该数据包已被完整接收,则继续接收下一个数据包,如果得出不同的结果,则 让客户端重新发送该数据包和对应的序列号,服务器将对重新接收的数据包提取特征得到 的序列号与客户端发送的序列号做对比,直至得出相同的结果;4)服务器将所有数据包按序整合成完整的文档,通过MD5和SHA-I算法分别对该 接收的完整文档进行特征提取,分别形成一个接收文档的MD5和SHA-I序列号;5)服务器将接收文档的MD5和SHA-I序列号与保存的步骤2)上传的MD5和SHA-I 序列号做比较,如果结果相同,说明接收的文档就是客户端请求上传的文档,如果结果不 同,说明文档在传输过程中已被篡改或被调包,此时重复步骤、步骤幻、步骤4)、步骤5),直到服务器将接收文档的MD5和SHA-I序列号与步骤2)所述上传的MD5和SHA-I序列号 相同;6)将接收的文档存放在客户端指定的服务器数据库中,将该文档作为第一版本。 在步骤1)之后,步骤幻之前有一个服务器的判断步骤,服务器在接收了待发送文档的MD5 和SHA-I序列号后,与服务器数据库内的所有文档的MD5和SHA-I序列号做比较,如果相 同,则提示客户端已存在相同内容的文档,客户端可以选择继续上传该文档还是不上传。形成后续版本文档的过程包括以下步骤1)客户端从服务器的数据库中将原始文档下载,进行修改;2)客户端将修改好的文档进行MD5和SHA-I特征提取,分别形成一个MD5和SHA-I 序列号,将MD5和SHA-I序列号发送给服务器;3)服务器将原始文档的MD5和SHA-I序列号,与客户端上传的MD5和SHA-I序列 号进行比较,此时两个MD5序列号和两个SHA-I序列号必然不相同,说明客户端从服务器签 出的文档已经被修改了,此时客户端可以向服务器上传该已被修改的文档;4)客户端将待发送的修改后文档分成多个固定大小的数据包,通过CRC32算法对 每一数据包进行特征提取生成对应的CRC32算法的序列号,将每一组对应的CRC32序列号 和数据包按序发送给服务器;5)服务器接收到每一组对应的CRC32序列号和数据包后,用CRC32算法对数据包 提取特征,将得到的CRC32序列号与客户端发送的对应此数据包的CRC32序列号做对比,如 果得出相同的结果,说明该数据包已被完整接收,则继续接收下一个数据包,如果得出不同 的结果,则让客户端重新发送该数据包和对应的序列号,服务器将对重新接收的数据包提 取特征得到的CRC32序列号与客户端发送的CRC32序列号做对比,重复该过程直至得出相 同的序列号;6)服务器将所有数据包按序整合成完整的文档,通过MD5和SHA-I算法分别对该 接收的完整文档进行特征提取,分别形成一个接收文档的MD5和SHA-I序列号;7)服务器将接收文档的MD5和SHA-I序列号与保存的步骤2)上传的MD5和SHA-I 序列号做比较,如果结果相同,说明接收的文档就是客户端请求上传的文档,如果结果不 同,说明文档在传输过程中已被篡改或被调包,此时重复步骤4)、步骤幻、步骤6)、步骤7), 直到服务器将接收文档的MD5和SHA-I序列号与步骤2)所述上传的MD5和SHA-I序列号 相同;8)服务器将接收的文档签入原始文档所在的数据库,原始文档和与其关联的版本 文档具有相同的编码,通过原始文档的编码找到其他与原始文档关联的版本,将该服务器 接收的文档作为数据库中原始文档及其关联版本文档中最高版本的后一版本。形成后续版本文档的过程还包括以下步骤的情况1)客户端从服务器的数据库中将原始文档下载,没有进行修改;2)客户端将该没有修改的文档进行MD5和SHA-I特征提取,分别形成一个MD5和 SHA-I序列号,将MD5和SHA-I序列号发送给服务器;3)服务器将原始文档的MD5和SHA-I序列号,与客户端上传的MD5和SHA-I序列 号进行比较,此时结果必然不相同,说明客户端的文档与服务器的原始文档一样,说明客户 端从服务器下载的文档没有被修改,此时客户端不能向服务器上传该没有被修改的文档。
以上形成版本的过程中,服务器每次接收文档成功后,都计算其MD5和SHA-I序列 号,并将对应的序列号存储在数据库中。该文档版本化方法的好处是首先,在文档上传前进行验证节省了时间。客户端在上传文档前,对文档进行MD5 和SHA-I算法特征提取,产生MD5和SHA-I序列号,与服务器的原始文档的MD5和SHA-I 序列号进行比较,如果相同,说明客户端文档和服务器原始文档一样,在形成第一版本的时 候,服务器会提示客户端要不要继续上传,在形成后续版本的时候,服务器不接受客户端上 传该文档,如果比较结果不相同,说明客户端文档和服务器原始文档不一样,即客户端文档 被修改了,此时服务器接受客户端上传该文档。其次,增加了安全性。文档通过CRC32校验被完整上传到服务器后,再次被MD5和 SHA-I算法提取特征,产生MD5和SHA-I序列号,与文档上传前的MD5和SHA-I序列号比较, 只有结果相同时,才能确保文档在上传过程中没有出现变化,才能确定上传的文档是客户 端请求上传的文档。最后,增加了验证结果的准确性。同时通过MD5和SHA-I算法验证比只用一个MD5 算法或SHA-I算法验证大大提高了验证的准确性。


图1是形成第一版本文档的流程图。图2是形成后续版本文档的流程图。图3是形成后续版本中出现的另一情况。
具体实施例方式本说明书描述六个具体实施方式
,两个形成第1版本文档的具体实施方式
,四个 形成后续版本文档的具体实施方式
。1)形成第1版本文档的第一个具体实施方式
,如图1所示客户端有一个文档,名称为“文档1. doc(docx) ”,该文档有10MKB大小。客户端 将该文档分别用MD5和SHA-I算法提取特征,分别形成了一个唯一的MD5和SHA-I序列号, 客户端将该MD5和SHA-I序列号发送给服务器。服务器将数据库内的所有文档的MD5和SHA-I序列号与客户端发送的“文档 1. doc (docx) ”的MD5和SHA-I序列号做比较,结果是不相同,说明服务器中没有和客户端待 发送的文档内容一样的文档。客户端将“文档1. doc (docx) ”以64KB作为标准,分为16个数据包。将16个数据 包按照顺序排列,对第1个数据包进行CRC32算法特征提取,产生CRC32序列号,将第1个数 据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对数据包再次进行CRC32 算法特征提取,也产生一个CRC32序列号,将服务器对数据包提取特征产生的CRC32序列号 与客户端发送的对应数据包的CRC32序列号做比较,两者相同,说明该数据包传输过程中 没有丢失。然后,客户端对第2个数据包进行CRC32算法特征提取,产生CRC32序列号,将 第2个数据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对第2个数据包 再次进行CRC32算法特征提取,也产生一个CRC32序列号,将服务器对第2个数据包提取特征产生的CRC32序列号与客户端发送的对应第2个数据包的CRC32序列号比较,两者相同。 以下14个数据包都是以这样的过程被完整接收了。服务器将接收的16个数据包按照顺序整合成完整的10MKB的“文档
1.doc (docx) ”,对已接收的“文档1. doc(docx) ”进行MD5和SHA-1算法特征提取,产生MD5 和SHA-I序列号,将该MD5和SHA-I序列号与客户端上传文档之前发送的MD5和SHA-I序 列号做比较,结果是相同的,说明服务器接收的“文档1. doc (docx) ”即是客户端请求发送的 文档,传输过程中文档内容没有发生任何变化。服务器将接收的完整的10MKB的“文档1. doc (docx) ”存放在数据库中作为第1 版本,同时为该第1版本分配一个新的编码并附上与第一版本文档内容对应的MD5、SHA-I 序列号。2)形成第1版本文档的第二个具体实施方式
,如图1所示客户端有一个文档,名称为“文档2. doc (docx) ”,该文档有10MKB大小。客户端 将该文档分别用MD5和SHA-I算法提取特征,分别形成了一个唯一的MD5和SHA-I序列号, 客户端将该MD5和SHA-I序列号发送给服务器。服务器将数据库内的所有文档的MD5和SHA-I序列号与客户端发送的“文档
2.doc (docx) ”的MD5和SHA-I序列号做比较,结果出现数据库内有一文档的MD5和SHA-1 序列号与客户端发送的序列号相同,说明服务器中有和客户端待发送的文档内容一样的文 档。服务器向客户端发送一条信息,提示客户端是否要继续上传“文档2. doc (docx) ”, 客户端仍要上传该“文档2. doc (docx) ”。客户端将“文档2. doc (docx) ”以64KB作为标准,分为16个数据包。将16个数据 包按照顺序排列,对第1个数据包进行CRC32算法提取特征,产生CRC32序列号,将第1个数 据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对数据包再次进行CRC32 算法提取特征,也产生一个CRC32序列号,将服务器对数据包提取特征产生的CRC32序列号 与客户端发送的对应数据包的CRC32序列号做比较,两者相同,说明该数据包传输过程中 没有丢失。然后,又以同样的过程接收了 8个数据包。在接收第10个数据包的时候,服务 器对第10个数据包提取特征得到的CRC32序列号与发送米的CRC32序列号不相同,说明第 10个数据包传输时出现了错误,有可能数据丢失或被篡改,服务器便让客户端重新发送该 数据包和对应的CRC32序列号,服务器接收数据包和对应的CRC32序列号后,又对数据包进 行CRC32算法特征提取产生CRC32序列号,再次与接收的CRC32序列号进行比较,结果是相 同的。继续接收第11-16个数据包,没有出现问题。服务器将接收的16个数据包按照顺序整合成完整的10MKB的“文档 2. doc (docx) ”,对已接收的“文档2. doc (docx) ”进行MD5和SHA-I算法特征提取,产生MD5 和SHA-I序列号,将该MD5和SHA-I序列号与客户端上传文档之前发送的MD5和SHA-I序 列号做比较,结果不相同,说明该接收的文档不是客户端请求上传的文档,虽然大小一样, 但是内容不同,说明文档在传输过程中被调包或者被替换掉了同样大小的内容,此时服务 器让客户端重新按顺序发送16个数据包和对应的CRC32序列号。服务器再次将接收的16个数据包按照顺序整合成完整的10MKB的“文档 2. doc (docx) ”,对已接收的“文档2. doc (docx) ”进行MD5和SHA-1算法提取特征,产生MD5
7和SHA-I序列号,将该MD5和SHA-I序列号与客户端上传文档之前发送的MD5和SHA-I序 列号做比较,这次结果是相同的,说明服务器接收的“文档2. doc(docx) ”即是客户端请求发 送的文档,传输过程中文档内容没有发生任何变化。服务器将接收的完整的10MKB的“文档2. doc(docx) ”存放在数据库中作为第1 版本,同时为该第1版本分配一个新的编码并附上与第一版本文档内容对应的MD5、SHA-I 序列号。3)形成后续版本的第一个具体实施方式
,如图2所示客户端下载服务器的已有的10MKB的“文档3. doc(docx) ”,对“文档 3. doc (docx),,内容进行编辑修改,修改后有2048KB大小。客户端对修改好的“文档3. doc (docx) ”进行MD5和SHA-I算法特征提取,产生MD5 和SHA-I序列号,将这两个序列号发送给服务器。服务器将原始文档10MKB的“文档3. doc (docx) ”的MD5和SHA-1序列号与客户 端发送的修改后2048KB的“文档3. doc (docx),,的MD5和SHA-I序列号比较,结果不相同。客户端将修改后的“文档3. doc (docx) ”以64KB作为标准,分为32个数据包。将 32个数据包按照顺序排列,对第1个数据包进行CRC32算法特征提取,产生CRC32序列号, 将第1个数据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对数据包再次 进行CRC32算法特征提取,也产生一个CRC32序列号,将服务器对数据包提取特征产生的 CRC32序列号与客户端发送的对应数据包的CRC32序列号做比较,两者相同,说明该数据包 传输过程中没有丢失。然后,客户端对第2个数据包进行CRC32算法特征提取,产生CRC32 序列号,将第2个数据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对第2 个数据包再次进行CRC32算法特征提取,也产生一个CRC32序列号,将服务器对第2个数据 包提取特征产生的CRC32序列号与客户端发送的对应第2个数据包的CRC32序列号比较, 两者相同。以下30个数据包都是以这样的过程被完整接收了。服务器将接收的32个数据包按照顺序整合成完整的2048KB的“文档 3. doc (docx) ”,对 2048KB 的“文档 3. doc (docx) ”进行 MD5 和 SHA-I 算法,产生 MD5 和 SHA-I 序列号,将该MD5和SHA-I序列号与客户端上传文档之前发送的MD5和SHA-I序列号做比 较,结果是相同的,说明服务器接收的2048KB的“文档3. doc (docx),,即是客户端请求发送 的文档,传输过程中文档内容没有发生任何变化。服务器根据原始文档10MKB的“文档3. doc (docx),,的编码,找到数据库中“文档 3. doc (docx),,的所有版本,数据库中已有三个不同的“文档3. doc (docx),,的版本,将接收 的2048KB的“文档3. doc (docx) ”作为第4版本,并附上和其关联版本一样的编码还有与文 档内容对应的MD5、SHA-I序列号。4)形成后续版本的第二个具体实施方式
,如图2所示客户端下载服务器已有的10MKB的“文档4. doc (docx) ”,对“文档4. doc (docx),, 内容进行编辑修改,修改后有2048KB大小。客户端对修改好的“文档4. doc (docx) ”进行MD5和SHA-I算法特征提取,产生MD5 和SHA-I序列号,将这两个序列号发送给服务器。服务器将原始文档10MKB的“文档4. doc (docx) ”的MD5和SHA-1序列号与客户 端发送的修改后2048KB的“文档4. doc (docx) ”的MD5和SHA-I序列号比较,结果不相同。
客户端将“文档4. doc (docx) ”以64KB作为标准,分为32个数据包。将32个数据 包按照顺序排列,对第1个数据包进行CRC32算法特征提取,产生CRC32序列号,将第1个数 据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对数据包再次进行CRC32 算法特征提取,也产生一个CRC32序列号,将服务器对数据包提取特征产生的CRC32序列号 与客户端发送的对应数据包的CRC32序列号做比较,两者相同,说明该数据包传输过程中 没有丢失。然后,又以同样的过程接收了 10个数据包。在接收第12个数据包的时候,服务 器对第12个数据包提取特征得到的CRC32序列号与发送米的CRC32序列号不相同,说明第 12个数据包传输时出现了错误,有可能数据丢失或被篡改,服务器便让客户端重新发送该 数据包和对应的CRC32序列号,服务器接收数据包和对应的CRC32序列号后,又对数据包进 行CRC32算法特征提取产生CRC32序列号,再次与接收的CRC32序列号进行比较,结果是相 同的。继续接收第13-32个数据包,没有出现问题。服务器将接收的32个数据包按照顺序整合成完整的2048KB的“文档 4. doc (docx) ”,对2048KB的“文档4. doc (docx) ”进行MD5和SHA-1算法特征提取,产生MD5 和SHA-I序列号,将MD5和SHA-I序列号与客户端上传文档之前发送的MD5和SHA-I序列 号做比较,结果不相同,说明该接收的文档不是客户端请求上传的文档,虽然大小一样,但 是内容不同,说明文档在传输过程中被调包或者被替换掉了同样大小的内容,此时服务器 让客户端重新按顺序发送32个数据包和对应的CRC32序列号。服务器再次将接收的32个数据包按照顺序整合成完整的2048KB的“文档 4. doc (docx) ”,对2048KB的“文档4. doc (docx) ”进行MD5和SHA-1算法特征提取,产生MD5 和SHA-I序列号,将该MD5和SHA-I序列号与客户端上传文档之前发送的MD5和SHA-I序 列号做比较,这次结果是相同的,说明服务器接收的“文档2. doc (docx) ”即是客户端请求发 送的文档,传输过程中文档内容没有发生任何变化。服务器根据原始文档10MKB的“文档4. doc (docx),,的编码,找到数据库中“文档
4.doc (docx),,的所有版本,数据库中已有三个不同的“文档4. doc (docx),,的版本,将接收 的2048KB的“文档4. doc (docx) ”作为第4版本,并附上和其关联版本一样的编码还有与文 档内容对应的MD5、SHA-I序列号。5)形成后续版本的第三个具体实施方式
,如图2所示客户端下载服务器的已有的10MKB的“文档5. doc (docx) ”,对“文档
5.doc (docx),,内容进行编辑修改,修改后仍有10MKB大小。客户端对修改好的“文档5. doc (docx) ”进行MD5和SHA-I算法特征提取,产生MD5 和SHA-I序列号,将这两个序列号发送给服务器。服务器将原始文档10MKB的“文档5. doc (docx) ”的MD5和SHA-1序列号与客户 端发送的修改后10MKB的“文档5. doc (docx),,的MD5和SHA-I序列号比较,结果不相同。客户端将修改后的“文档5. doc (docx) ”以64KB作为标准,分为16个数据包。将 16个数据包按照顺序排列,对第1个数据包进行CRC32算法特征提取,产生CRC32序列号, 将第1个数据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对数据包再次 进行CRC32算法特征提取,也产生一个CRC32序列号,将服务器对数据包提取特征产生的 CRC32序列号与客户端发送的对应数据包的CRC32序列号做比较,两者相同,说明该数据包 传输过程中没有丢失。然后,客户端对第2个数据包进行CRC32算法特征提取,产生CRC32序列号,将第2个数据包和其对应的CRC32序列号一起发送给服务器,服务器接收后,对第2 个数据包再次进行CRC32算法特征提取,也产生一个CRC32序列号,将服务器对第2个数据 包提取特征产生的CRC32序列号与客户端发送的对应第2个数据包的CRC32序列号比较, 两者相同。以下14个数据包都是以这样的过程被完整接收了。服务器将接收的16个数据包按照顺序整合成完整的10MKB的“文档 5. doc (docx) ”,对10MKB的“文档5. doc (docx) ”进行MD5和SHA-1算法特征提取,产生MD5 和SHA-I序列号,将该MD5和SHA-I序列号与客户端上传文档之前发送的MD5和SHA-I序 列号做比较,结果是相同的,说明服务器接收的10MKB的“文档5. doc (docx) ”即是客户端 请求发送的文档,传输过程中文档内容没有发生任何变化。服务器根据原始文档10MKB的“文档5. doc (docx),,的编码,找到数据库中“文档 5. doc (docx),,的所有版本,数据库中已有三个不同的“文档5. doc (docx),,的版本,将接收 的10MKB的“文档5. doc (docx) ”作为第4版本,并附上和其关联版本一样的编码还有与文 档内容对应的MD5、SHA-I序列号。6)形成后续版本的第四个具体实施方式
,如图3所示客户端下载服务器已有的10MKB的“文档6. doc (docx) ”,对“文档6. doc (docx),, 的内容没有进行修改。客户端对没有修改的“文档6. doc (docx) ”进行MD5和SHA-I算法特征提取,产生 MD5和SHA-I序列号,将这两个序列号发送给服务器。服务器将原始文档10MKB的“文档6. doc (docx) ”的MD5和SHA-I序列号与客户 端发送的1024KB的“文档6. doc (docx),,的MD5和SHA-I序列号比较,结果相同,说明服务 器数据库中已存在与客户端内容相同的文档。服务器不接受客户端向其上传10MKB的“文档6. doc (docx) ”,无法形成后续版 本。以上便是该方法的六个优选具体实施方式
。在所有形成文档版本的过程中,原始 文档和后续文档的文档名称是否相同都不影响该方法的实现。在所有形成文档版本的过程 中,数据包的大小也没有限制,最后一个数据包大小不一定要和前面所有数据包相同。
10
权利要求
1.一种文档版本化的方法,基于CRC32、MD5、SHA-I算法,形成第一版本的过程包括以 下步骤1)客户端将待发送的文档进行MD5和SHA-I特征提取,分别形成一个MD5和SHA-I序 列号,将MD5和SHA-I序列号发送给服务器;2)客户端将待发送的文档分成多个固定大小的数据包,通过CRC32算法对每一数据包 进行特征提取生成对应的CRC32序列号,将每一组对应的CRC32序列号和数据包按序发送 给服务器;3)服务器接收到每一组对应的CRC32序列号和数据包后,用CRC32算法对数据包提取 特征,将得到的序列号与客户端发送的对应此数据包的序列号做对比,如果得出相同的结 果,说明该数据包已被完整接收,则继续接收下一个数据包,如果得出不同的结果,则让客 户端重新发送该数据包和对应的序列号,服务器将对重新接收的数据包提取特征得到的序 列号与客户端发送的序列号做对比,直至得出相同的结果;4)服务器将所有数据包按序整合成完整的文档,通过MD5和SHA-I算法分别对该接收 的完整文档进行特征提取,分别形成一个接收文档的MD5和SHA-I序列号;5)服务器将接收文档的MD5和SHA-I序列号与保存的步骤2)上传的MD5和SHA-I序 列号做比较,如果结果相同,说明接收的文档就是客户端请求上传的文档,如果结果不同, 说明文档在传输过程中已被篡改或被调包,此时重复步骤2、、步骤幻、步骤4)、步骤5),直 到服务器将接收文档的MD5和SHA-I序列号与步骤2)所述上传的MD5和SHA-I序列号相 同;6)将接收的文档存放在客户端指定的服务器数据库中,将该文档作为第一版本。
2.如权利要求1所述的一种文档版本化的方法,其特征在于在步骤1)之后,步骤2) 之前有一个服务器的判断步骤,服务器在接收了待发送文档的MD5和SHA-I序列号后,与服 务器数据库内的所有文档的MD5和SHA-I序列号做比较,如果相同,则提示客户端已存在相 同内容的文档,客户端可以选择继续上传该文档还是不上传。
3.一种文档版本化的方法,基于CRC32、MD5、SHA-I算法,形成后续版本文档的过程包 括以下步骤1)客户端从服务器的数据库中将原始文档下载,进行修改;2)客户端将修改好的文档进行MD5和SHA-I特征提取,分别形成一个MD5和SHA-I序 列号,将MD5和SHA-I序列号发送给服务器;3)服务器将原始文档的MD5和SHA-I序列号,与客户端上传的MD5和SHA-I序列号进 行比较,此时两个MD5序列号和两个SHA-I序列号必然不相同,说明客户端从服务器签出的 文档已经被修改了,此时客户端可以向服务器上传该已被修改的文档;4)客户端将待发送的修改后文档分成多个固定大小的数据包,通过CRC32算法对每一 数据包进行特征提取生成对应的CRC32序列号,将每一组对应的CRC32序列号和数据包按 序发送给服务器;5)服务器接收到每一组对应的CRC32序列号和数据包后,用CRC32算法对数据包提取 特征,将得到的CRC32序列号与客户端发送的对应此数据包的CRC32序列号做对比,如果得 出相同的结果,说明该数据包已被完整接收,则继续接收下一个数据包,如果得出不同的结 果,则让客户端重新发送该数据包和对应的序列号,服务器将对重新接收的数据包提取特征得到的CRC32序列号与客户端发送的CRC32序列号做对比,重复该过程直至得出相同的 序列号;6)服务器将所有数据包按序整合成完整的文档,通过MD5和SHA-I算法分别对该接收 的完整文档进行特征提取,分别形成一个接收文档的MD5和SHA-I序列号;7)服务器将接收文档的MD5和SHA-I序列号与保存的步骤2)上传的MD5和SHA-I序 列号做比较,如果结果相同,说明接收的文档就是客户端请求上传的文档,如果结果不同, 说明文档在传输过程中已被篡改或被调包,此时重复步骤4)、步骤幻、步骤6)、步骤7),直 到服务器将接收文档的MD5和SHA-I序列号与步骤2)所述上传的MD5和SHA-I序列号相 同;8)服务器将接收的文档签入原始文档所在的数据库,原始文档和与其关联的版本文档 具有相同的编码,通过原始文档的编码找到其他与原始文档关联的版本,将该服务器接收 的文档作为数据库中原始文档及其关联版本文档中最高版本的后一版本。
4.一种文档版本化的方法,基于CRC32、MD5、SHA-I算法,形成后续版本文档的过程还 包括以下步骤的情况1)客户端从服务器的数据库中将原始文档下载,没有进行修改;2)客户端将该没有修改的文档进行MD5和SHA-I特征提取,分别形成一个MD5和SHA-I 序列号,将MD5和SHA-I序列号发送给服务器;3)服务器将原始文档的MD5和SHA-I序列号,与客户端上传的MD5和SHA-I序列号进 行比较,此时结果必然不相同,说明客户端的文档与服务器的原始文档一样,说明客户端从 服务器下载的文档没有被修改,此时客户端不能向服务器上传该没有被修改的文档。
5.如权利要求1或权利要求3所述的文档版本化的方法,其特征在于服务器每次接 收文档成功后,都计算其MD5和SHA-I序列号,并将对应的序列号存储在数据库中。
全文摘要
该文档版本化方法首先通过MD5和SHA-1算法验证客户端待上传的文档和服务器原始文档是否一样,如果一样,则服务器不接受客户端上传该文档,如果不一样,服务器则可以接受客户端上传该文档。文档通过CRC32校验被完整接收后,服务器通过MD5和SHA-1算法验证该接收文档,将该接收文档的MD5和SHA-1序列号与该接收文档上传前发送的MD5和SHA-1序列号比较,以确定上传的文档是客户端请求上传的文档。再确定该上传文档的版本号。同时使用MD5和SHA-1算法验证比只用一个MD5算法或SHA-1算法验证大大提高了验证的准确性,该方法对客户端文档上传前和上传后都进行MD5和SHA-1算法验证能够保证文档与原始版本不一样,还能保证文档在上传过程中不会被篡改或被调包。
文档编号H04L9/32GK102143183SQ20111008057
公开日2011年8月3日 申请日期2011年3月24日 优先权日2011年3月24日
发明者陈必飞 申请人:镇江星浪科技产品有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1