java集合

来源:互联网 发布:苹果六怎么备份数据 编辑:程序博客网 时间:2024/04/29 14:36

什么是哈希值?

你可以把哈希值简单地理解成是一段数据(某个文件,或者是字符串)的DNA,或者身份证

通过一定的哈希算法(典型的有MD5,SHA-1等),将一段较长的数据映射为较短小的数据,这段小数据就是大数据的哈希值。他有这样一个特点,他是唯一的,一旦大数据发生了变化,哪怕是一个微小的变化,他的哈希值也会发生变化。另外一方面,既然是DNA,那就保证了没有两个数据的哈希值是完全相同的。

正是因为这样的特点,它常常用来判断两个文件是否相同。比如,从网络上下载某个文件,只要把这个文件原来的哈希值同下载后得到的文件的哈希值进行对比,如果相同,则表示两个文件完全一致,下载过程没有损坏文件。而如果不一致,则表明下载得到的文件跟原来的文件不同,文件在下载过程中受到了损坏。

不可逆、无冲突是hash算法的特点
所谓不可逆,就是当你知道x的HASH值,无法求出x;
所谓无冲突,就是当你知道x,无法求出一个y, 使x与y的HASH值相同。

典型的哈希算法包括 MD2、MD4、MD5 和 SHA-1。


java对象的hash值根据什么算?
我猜是对象实例的地址和对象实例化的时刻;






0 0
原创粉丝点击