gpt4 book ai didi

java - 哪种哈希算法可以用于重复内容验证?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:15:30 24 4
gpt4 key购买 nike

我有一个 xml 文件,我需要在其中确定它是否重复。

我将对整个 xml 文件进行哈希处理,或者使用 xml 文件中的特定 xml 节点生成某种哈希。

md5 适合这个吗?

还是别的?生成哈希的速度也相当重要,但保证为唯一数据生成唯一哈希更为重要。

最佳答案

MD5 已损坏(从某种意义上说,可能会故意生成散列冲突),如果您担心有人恶意 创建一个与另一个文件具有相同哈希值的文件。


请注意,哈希函数,就其本质而言,不能保证每个可能的输入都有唯一的哈希值。哈希函数的长度有限(例如:MD5 的长度为 128 位,因此有 2128 种可能的哈希值)。您无法将潜在的无限域映射到有限的共域,这在数学上是不可能的。

但是,根据 birthday paradox ,在一个好的散列函数中发生冲突的机会是 2n/2 中的 1,其中 n 是以位为单位的长度。 (例如:对于 128 位 MD5,则为 264)。这在统计上是如此微不足道,以至于您不必担心意外发生碰撞。

关于java - 哪种哈希算法可以用于重复内容验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com