哈希算法

给一个value, 通过hash算法,算出一个固定长度的hash值,就是hash算法. 也就是:

hash_func(value) = hash_value

hash 算法的目标是 不可逆, 无冲突, 但这从数学上来说是不可能的。牛逼的hash算法,只是让逆向算法的难度提升到目前计算机无法在百年内算出来, 并且很难造出冲突的两个value。

Note

王小云教授曾经成功制造出MD5的碰撞,即md5(a) = md5(b)。这样的碰撞只能随机生成,并不能根据一个已知的a求出b(即并没有破坏MD5的无冲突特性)。但这已经让他声名大噪了。