Hash也被称为散列、哈希,对应的英文都是Hash。他们的基本原理都是把任意长度的输入,通过Hash算法变成固定长度的输出。这个映射的规则就是对应的Hash算法,而原始数据映射之后的二进制串就是哈希值。经常使用的Hash算法有MD5和SHA,他们都是历史悠久的Hash算法。得益于哈希算法的巧妙,Hash算法的应用还是比较广泛的,下面我们来看看Hash算法都有哪些方面的应用。
上述的密码学中的Hash,在安全加密的应用比较广泛。
不过需要知道的是,现在的世界上没有一个绝对安全的加密. 越复杂、越难破解的加密算法,需要计算的时间就越长. 密码学界一直在致力去找一种可以快速生成并且很难被破解的Hash算法. 而且我们在实际的开发中,也需要权衡破解难度和计算时间,来决定究竟使用哪种加密算法。
由于Hash算法的抗碰撞能力,我们可以对一些难以查找、比较的文件或者其他的数据进行Hash计算,生成一个Hash值,也就是他的唯一标识. 这样去判断文件是否存在这样的操作就会简单很多。
BT种子下载软件的原理是基于P2P协议的,从多个机器上下载一个2GB的电影,这个电影文件可能会被分成很多块,等所有块下载好然后组装成一个完整电影。
网络传输是不安全的,所以下载出来的文件块是可能不完整的,这个时候我们就可以通过对文件块进行Hash运算,在下载之后和之前的Hash值进行对比,就可以进行数据校验。
基本用在数据结构中,散列表的实现。
在分布式系统中,需要应用负载均衡的方式去将会话的请求分发给不同的服务器. 这里我们可以使用Hash算法对客户端IP进行计算Hash值,与服务器列表大小进行取模运算,获取对应需要被路由道的服务器编号。
一般都在应用于分布式解决问题,分治的思想,通过Hash来进行分区域分片实现“分”的操作。
通过Hash值确定数据要存储到哪台机器上;如果机器新增了,数量改变了,我们可以通过一致性hash算法来避免大量的数据搬运。
总体来说,我们对hash算法的应用领域说的比较笼统,其实细分的化还是有很多的不同的,想了解更多这方面的知识,可以观看极悦在线的免费视频课程,开拓自己的知识面,让学习更有乐趣。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54