永发信息网

哈希函数是唯一的吗?哈希值的问题

答案:2  悬赏:0  手机版
解决时间 2021-11-19 20:46
  • 提问者网友:记得曾经
  • 2021-11-19 13:57
哈希函数是唯一的吗?哈希值的问题
最佳答案
  • 五星知识达人网友:痴妹与他
  • 2021-11-19 14:45
    哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个...
全部回答
  • 1楼网友:慢性怪人
  • 2021-11-19 15:08
所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果,具有这种性质的散列函数称为单向散列函数。但另一方面,散列函数的输入和输出不是唯一对应关系的,如果两个散列值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“散列碰撞(collision)”,这通常是两个不同长度的输入值,刻意计算出相同的输出值。输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值。
--百度百科的原文摘取
可以得出结论,哈希值是不唯一的。联想到java中Set集合需要同时重写hashCode()和equals()方法判断元素的唯一性,原因就是在,hashCode相同的同时,需要进一步判断数值是否相同,最后才能得出结果。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯