理论:
Hash也称散列,哈希。基本原理就是把任意长度的输入,通过Hash算法变成固定长度的输出。这个映射的规则就是对应的Hash算法,而原始数据映射后的二进制串就是哈希值。
Hash的特点
- hasn值不可以反向推算出原始的数据,不可逆。
- 输入的原始数据微小变化都会根据Hash算法得到不同的值,相同的数据会得到相同的值。
- 哈希算法的执行效率很高,长文本也能快速地计算出哈希值。
- 哈希算法的冲突概率小。
由于hash的原理是将输入空间的值映射成hash空间内,而hash值的空间远小于输入的空间。
根据抽屉原理,一定会存在不同的输入被映射成相同的输出的情况。
抽屉原理:桌子上有10个苹果,要把这个苹果放到9个柜子里,无论怎么放,总有一个抽屉至少会有两个苹果。