美文网首页
哈希算法的实际应用

哈希算法的实际应用

作者: 炒河粉儿 | 来源:发表于2021-09-17 14:26 被阅读0次

    哈希算法的概念

    • 哈希算法的原理用一句话来概括:将任意长度的二进制串映射为固定长度的二进制串。这种映射的规则就称为哈希算法。原始数据映射后得到的二进制串就称为哈希值。

    • 哈希算法一般要满足以下要求

      1.从哈希值不能反向推导出原始数据。因此也称为单向哈希算法。

      2.对数据变化敏感,哪怕原始数据只改动一个二进制位,对应的哈希值也大不相同。

      3.哈希冲突的概率要小,不同原始数据对应相同哈希值的概率非常小。

      4.哈希算法的执行效率要高,对于较长的文本,也能快速计算出哈希值。

    哈希值的应用

    安全加密

    • 加密算法的使用。比如MD5,SHA,DES,AES等。对数据进行加密操作,再和服务起进行传输。同样,用户的密码也使用哈希算法进行加密,避免数据的泄露。
    • 字典攻击,维护一个常用的密码字典表,把表中的明文密码用哈希算法计算出哈希值,通过对获取到的数据与表中数据进行比对,可以找到对应的原数据。比如SHA1已经被破解,据说MD5也被破解了。为了能够增加破解难度。我们使用MD5等哈希算法加密密码数据的时候,我们可以采取引入一个盐(salt)的操作,和用户密码组合在一起,增加密码的复杂度,增加密码被破解的难度。

    唯一标识

    • 可以对数据的多个部分截取,进行哈希算法得到哈希值,用来当作这个数据的唯一标识。可以通过对唯一标识的对比来判断数据是否相同。

    数据校验

    • 也是通过对数据分片,进行哈希算法,得到哈希值,用哈希值来比对是否相同,校验数据的正确性。

    哈希函数

    • 哈希表中的哈希函数同样也是哈希算法的应用。不过哈希函数并不关心是否能反向解密。更关心的是执行的效率和是否能使数据平均分布。

    负载均衡

    • 通过哈希算法,将不同的请求分配到不同的服务器上。将需要放在同一个服务器上的请求都转发到相对应的服务器上。

    数据分片

    • 利用数据通过哈希算法,获取到哈希值,按照一定的规则,比如求模取余等,将数据分配到对应的机器上。当进行一个数据的查询等操作时,我们就可以快速定位到对应的机器,利用分片处理的思路,突破单机内存或者CPU的资源限制。

    分布式存储

    • 数据通过哈希算法得到哈希值,然后按照一定的的规则将数据放置在不同的机器中进行存储。同时利用一致性哈希算法,解决新增机器缓存失效的问题。

    相关文章

      网友评论

          本文标题:哈希算法的实际应用

          本文链接:https://www.haomeiwen.com/subject/knorgltx.html