一、哈希算法
哈希算法需要满足的几点要求:
- 从哈希值不能反向推导出原始数据(所以也叫单向哈希算法);(重要)
- 即使原始数据发生很小改变,得到的哈希值大不相同;
- 散列冲突的概率小;(重要)
- 算法执行效率高效,对较长的文本,也能快速计算出哈希值;
例如,MD5算法的哈希值是128位的Bit长度,对任何长度的文本都会得到相同的哈希值:
MD5("今天我来讲哈希算法") = bb4767201ad42c74e650c1b6c03d78fa
MD5("jiajia") = cd611a31ea969b908932d44d126d195b
对于非常相似的两个文本,得到的哈希值也大不相同: