哈希算法

定义:将任意长度的值映射为固定长度的值(哈希值)

要求

  • 哈希值不能反推原始数据
  • 输入敏感,原始数据修改少,哈希值变化大
  • 散列冲突概率低
  • 计算效率高,针对大文本

常见应用

  • 安全加密,唯一标识,数据校验,散列函数,负载均衡,数据分片,分布式存储

安全加密

  • 哈希算法
    1. MD5(Message-Digest Algorithm,信息摘要算法)
    2. SHA(Secure Hash Algorithm,安全散列算法)
    3. DES(Data Encryption Standard,数据加密标准)
    4. AES(Advanced Encryption Standard,高级加密标准)
  • 要求
    1. 哈希值不能反推原始数据
    2. 散列冲突概率低
  • 散列冲突原因
    1. 鸽巢原理: 鸽子多于鸽巢,肯定有巢鸽子多于1
    2. 本质:哈希值有限,而数据无限

唯一标识:使用恒定数据,生成唯一标识,用于检索

数据校验:哈希算法输入敏感,校验数据是否篡改

散列函数:散列表,关注性能:hash值分布平均,hash函数执行快

防止脱库(存储密码)

  • hash算法加密
  • 使用盐,增加密码复杂度(字典攻击:密码太简单->猜)

分布式系统相关

  • 问题:数据量大,内存不够
  • 思想:定值取模->多个映射(恒定的映射),多机器平摊数据量
  • 应用:负载均衡,数据分片,分布式存储

负载均衡

  • 功能:会话粘滞(相同会话映射一致性)
  • 思路: 恒定值(客户端IP或会话ID)取模运算

数据分片

  • 问题:数据大,一台机器无法处理且慢
  • 思路:数据取模(模恒定)映射机器,并行处理
分布式存储
  • 功能:数据存储在多台机器,提供高效的读取、写入支持
  • 问题:机器数量变化时,可能发生雪崩效应,压垮数据库。(取模映射变化,缓存失效)
  • 解决:一致性哈希算法

一致性哈希算法

  • 原理:对232取模,扩大模范围
  • hash环:232个点组成的圆,从0开始
  • 机器位置:和232取模
  • 数据映射机器:和232取模后,顺时针的第一个机器
  • 优点:部分缓存失效,解决雪崩问题
  • hash环偏斜:机器分布不均匀,数据大量映射于相同的机器
  • 虚拟节点:解决上面问题,实际机器节点的复制节点(平均机器节点的分布)
  • 参考文档:http://www.zsythink.net/archives/1182
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值