hash - 2个不同输入的哈希值可以相同吗?

标签 hash cryptography

根据我的理解,散列是一个生成唯一固定长度(假设为 64 位)输出到任意长度输入的过程。 (如有错误请指正)

因此,如果我采用散列函数可以产生的所有 (x) 个可能的 64 位散列值并在其末尾附加 0 或 1。我得到一个大小为 2x 的列表(其中每个哈希为 65 位长)。

如果我将所有 2x 组合作为相同哈希函数的输入,它如何为所有输入生成唯一哈希?

最佳答案

你是对的。这被称为哈希冲突,它是真实的。这不是一个更大的交易的原因是哈希的数量非常大,以至于这些类型的冲突很少见。不过,您的 64 位示例有点不切实际。 256 位或 512 位是更可能的情况。 (即使是 128 也不再被认为足够强。)在这种情况下,散列的范围是如此之大,以至于很难找到产生散列冲突的输入。

关于hash - 2个不同输入的哈希值可以相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53119712/

相关文章:

java - 如何以及何时在 HashMap 中完成 Rehashing

ruby - 将字符串拆分为哈希?

algorithm - 基于字符的布隆过滤器

cryptography - Linux内核是否支持RSA加密/解密?

c# - 从代码创建 Dot Net Nuke 用户

Java 相同输入的不同 MD5 输出?

PHP 发布并获取值到 jQuery 框页面,刷新页面为 `msnbc.com`

java - 如何RSA验证在php中生成的java中的签名

ruby - 为什么我在使用私钥加密时不能使用 RSA OAEP 填充?

arrays - 删除数组中第一个空格后的所有内容