哈希算法

哈希算法

将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值

设计一个优秀的哈希算法并不容易,需要满足的几点要求:

  • 从哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法);
  • 对输入数据非常敏感,哪怕原始数据只修改了一个 Bit,最后得到的哈希值也大不相同;
  • 散列冲突的概率要很小,对于不同的原始数据,哈希值相同的概率非常小;
  • 哈希算法的执行效率要尽量高效,针对较长的文本,也能快速地计算出哈希值。

哈希算法最常见的七个应用

1.唯一标识,哈希算法可以对大数据做信息摘要,通过一个较短的二进制编码来表示很大的数据。
2.数据校验,用于校验数据的完整性和正确性。
3.安全加密,我们讲到任何哈希算法都会出现散列冲突,但是这个冲突概率非常小。越是复杂哈希算法越难破解,但同样计算时间也就越长。所以,选择哈希算法的时候,要权衡安全性和计算时间来决定用哪种哈希算法。
4.散列函数,这个我们前面讲散列表的时候已经详细地讲过,它对哈希算法的要求非常特别,更加看重的是散列的平均性和哈希算法的执行效率。
5.负载均衡,在负载均衡应用中,利用哈希算法替代映射表,可以实现一个会话粘滞的负载均衡策略
6.数据分片,在数据分片应用中,通过哈希算法对处理的海量数据进行分片,多机分布式处理,可以突破单机资源的限制。
7.分布式存储,在分布式存储应用中,利用一致性哈希算法,可以解决缓存等分布式系统的扩容、缩容导致数据大量搬移的难题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从广义上来讲:数据结构就是一组数据的存储结构 , 算法就是操作数据的方法数据结构是为算法服务的,算法是要作用在特定...
    冰风v落叶阅读 2,527评论 0 7
  • 2011 年 CSDN 的“脱库”事件,当时,CSDN 网站被黑客攻击,超过 600 万用户的注册邮箱和密码明文被...
    鹰艺阅读 1,769评论 3 20
  • 哈希算法历史悠久,业界著名的哈希算法也有很多,比如 MD5、SHA 等。在我们平时的开发中,基本上都是拿现成的直接...
    acc8226阅读 641评论 0 0
  • 什么是哈希算法? 哈希算法的定义和原理非常简单,基本上一句话就可以概括了。将任意长度的二进制值串映射为固定长度的二...
    Sun东辉阅读 2,973评论 0 2
  • 哈希算法历史悠久,业界著名的哈希算法也有很多,比如 MD5、SHA 等。在我们平时的开发中,基本上都是拿现成的直接...
    zhujunhua阅读 310评论 0 1