对大文件做 hash,请问什么 hash 函数既是 collision-resistant,又能对文件部分更改快速重计算 hash 值?


最好重计算 hash 值不需要重新读出整个文件。
目前我知道的,SHA1 几乎不会出现 collision,但文件部分更新后貌似需要完全重新计算 hash 值;Rabin fingerprint 应该不是 collision-resistant,但可以只对更新部分重计算即可得到新的 hash 值。

分布式 算法

retro 12 years, 2 months ago

collision-resistant只能说强度有多大, 不能说有没有, 因为摘要一定会冲突.
能不能支持快速计算取决于摘要算法, Rabin fingerprint是一种子串匹配算法, 换句话说它只是取完整数据的一部分来生成摘要, 用这种方式冲突的可能性当然极大.
如果希望快速生成摘要, 需要针对文件格式的特性设计摘要算法.

没有ID的某饭 answered 12 years, 2 months ago

Your Answer