基于rsync同步算法的文件同步系统JAVA实现(二)——校验码的生成

该博客探讨了在文件同步系统中,如何使用基于rsync算法的滚动校验和MD4校验来分析差异数据块。首先对完整文件的每个分块进行滚动校验,相同则进一步进行MD4校验以确保数据块匹配。滚动校验速度快但非唯一,而MD4校验保证唯一性但较慢。文章提供了相关源码并强调了校验码转化为字节流的注意事项。
摘要由CSDN通过智能技术生成

作用:

分析差异数据块过程中需要不完整文件各个数据块的两种校验:滚动校验和md4校验,先对完整文件的各个分块依次进行滚动校验,若相同再进行md4校验,若再次相同说明数据块匹配,否则不匹配,在文件中向后移动一个字节形成的新分块进行校验(利用滚动校验的特性可以很快完成)。

核心算法1-滚动校验(参考rsync源码,并作了少量类型修改(unsigned转long)):

弱校验,优点是速度快(但不能保证唯一性),两个校验函数,一种是根据一整个数据块生成校验码,另一种是根据前一个数据块已知的校验码和新的字节信息产生校验码(快)。

源码:

/**
	 * 非递推滚动校验 a simple 32 bit checksum that can be upadted from ei
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值