Hash SHA-512输入字符串的长度影响?

Hash SHA-512输入字符串的长度影响?,hash,comparison,data-warehouse,sha512,Hash,Comparison,Data Warehouse,Sha512,我正在实现一种快速查找数据仓库源中的更改的方法 经过几次尝试,我们发现对给定表的所有属性进行散列,并将其与目标进行比较是比较它的最有效方法之一 然而,对我们来说,不可忽视的问题是碰撞风险。因为我需要100%信任我的数据 我的理解是,对于SHA-512,它应该接近0(2^-256…)。但我们无法找到的是,输入字符串的长度是否会影响冲突的可能性 因为对于一个有20个字段的表,我相信它会起作用,但是对于一个有280个字段的表,其中一些字段有自由文本。。。我想确定一下 我知道一个字符串的最大长度是2^1

我正在实现一种快速查找数据仓库源中的更改的方法

经过几次尝试,我们发现对给定表的所有属性进行散列,并将其与目标进行比较是比较它的最有效方法之一

然而,对我们来说,不可忽视的问题是碰撞风险。因为我需要100%信任我的数据

我的理解是,对于SHA-512,它应该接近0(2^-256…)。但我们无法找到的是,输入字符串的长度是否会影响冲突的可能性

因为对于一个有20个字段的表,我相信它会起作用,但是对于一个有280个字段的表,其中一些字段有自由文本。。。我想确定一下

我知道一个字符串的最大长度是2^128,但是散列一个20.000个字符而不是200个字符的较长字符串会增加冲突的概率吗


谢谢你的帮助

哈希算法内部函数始终使用固定长度的输入。因此,当散列长字符串时,它会将字符串分割成与内部函数所需输入长度相同的数据块(如果需要,填充最后一个)。然后,它将在这些块上循环,并将一个块的输出与当前状态、所有先前块的组合输出相结合


已经证明,这个构造使得最终散列和内部函数一样能够抵抗冲突。检查(用于SHA-512)文章

离题了……但请查阅生日悖论。Eric Lippert有一篇很好的博客文章。@MitchWheat谢谢,但我理解生日悖论,我只是想知道输入键的长度是否对碰撞概率有影响。使用20K管柱进行10M测试的碰撞概率是否与使用1K管柱进行10M测试的碰撞概率相同?(我的理解是否定的,但我没有支持它的论据或来源)