哈希算法相关梳理

本文介绍了哈希算法的基本概念,包括哈希碰撞和常见哈希算法如MD5、SHA-1、SHA-2。接着阐述了哈希算法在文件校验、数字签名等领域的应用,并重点讲解了一致性哈希算法,分析了它如何解决服务器扩容导致的缓存失效问题,以降低性能损失。最后提到通过虚拟服务器来进一步优化一致性哈希的效果。
摘要由CSDN通过智能技术生成

1.基本概念

哈希也成为“散列”:任意长度的输入,经过哈希算法变换成固定长度的输出。

哈希值会产生碰撞,因为固定长度的哈希值表示的范围是有限的,但输入值的范围是无限的。

通过原始数据通过相同的哈希算法可以计算出相同的哈希值,但是通过哈希值无法恢复原始数据

不同的哈希算法,哈希值长度不同,但相同的哈希算法,哈希值长度固定。哈希值的长度越长越安全。(出现碰撞的概率越低)

2.常用的哈希算法

最简单的哈希算法就是取模运算。比如共有10个数,对9取模,则1至9对9取模的结果分别为1,2,3,4,5,6,7,8,9。10对9取模的结果为1,则1和10经过该哈希运算后结果发生碰撞。

常用的哈希算法包括:MD5、SHA-1、SHA-2等,目前除了SHA-2以外,其他算法都产生过碰撞。

3.哈希算法的用途

可用于:文件校验(验证两个文件是否为同一个文件)、数字签名、鉴权协议等。

4.一致性哈希算法

4.1 要解决什么问题?

     在互联网中经常需要对服务器扩容,比如之前有5台服务器,现在要扩容到6台。如果有个数据存储在服务器1(假设数据对5取模结果为N就存储在第N台服务器)    ,当服务器从5台扩容至6台,则数据请求将对6取模,其结果将和5取模完全不同,导致缓存服务器全部失效,所有数据都需要直接命中数据库,然后重新缓存,造成大量的性能浪费。为解决这个问题而形成了一致性哈希算法。

4.2 一致性哈希算法的概念

1)将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值