Hash算法

作者: 我是曾经那个少年 | 来源:发表于2018-11-20 23:39 被阅读4次

数据结构与算法分析:大纲
数据结构:数组
算法:hash算法
算法:排序算法Java实现

1 Hash算法?

将任意长度的二进制串映射为固定长度的二进制值串的映射规则就是Hash算法。通过原始数据映射之后得到的二进制串就是hash值。

  • 需要满足的要求
  1. hash值非常困难的反向推导出原始数据。
  2. 输入数据敏感,原始数据只修改了一个bit,最后的hash值也大不相同。
  3. 散列冲突的概率很小,对于不同的原始数据,hash值相同的概率非常小。
  4. hash算法的执行效率要尽量高效,针对长文本也能很快计算出hash值。

雀巢原理:有10个鸽巢,有11个鸽子,那肯定有1个鸽巢中的鸽子数量多于1。

所以对于定长的二进制串肯定会存在hash值相同。无法做到零冲突。

2 应用:安全加密

MD5+SHA

3 应用:唯一标识

对信息摘要进行Hash

通过比对hash值是否相同来判断是否同一个文件。

4 应用:数据校验

电驴分段下载

5 应用:散列函数

6 应用:负载均衡

同一个客户端在一次会话中的所有请求都路由到一个服务器上。

Hash(ip+sessionId)%服务器个数

7 应用:数据分片

海量数据-->hash分片-->单台机器-->汇总结果

8 应用:分布式存储

一致性Hash解决分布式存储结构下动态增加和删除节点所带来的问题。

https://en.wikipedia.org/wiki/Consistent_hashing

相关文章

  • 分布式集群架构场景化解决方案

    一致性hash算法hash算法应用场景普通hash算法存在的问题一致性hash算法手写一致性hash算法nginx...

  • 哈希算法

    哈希算法 什么是hash函数?常见的hash算法hashlib的用法hash算法的用途 什么是hash函数? 哈希...

  • IOS 逆向开发(二)密码学 HASH

    1. HASH算法简介 1.1 HASH是什么? Hash算法(也叫散列算法) Hash,一般翻译做“散列”,也有...

  • 负载均衡中的一致性hash算法

    hash简介 说到底,他是一种hash算法,那什么是hash算法?hash算法是一种散列算法,常用的比如MD5。抽...

  • 哈希(散列函数)

    力扣题库极客时间 Hash算法也被称为散列算法,Hash算法虽然被称为算法,但实际上它更像是一种思想。Hash算法...

  • Hash一致性算法浅析

    Ngnix负载均衡策略包含Hash算法,就是通过Hash算法将请求hash求值,根据hash值定向到服务器。 假定...

  • 一致性hash算法

    Hash 算法也叫做散列算法,他可以让任意长度的数据M映射成为长度固定的值H。 Hash算法的作用 Hash算法的...

  • 一致性hash算法

    一致性hash算法 1.hash算法 先说一下hash算法,hash算法是将任意长度的二进制值映射为固定长度的二进...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 1. IOS 字典研究

    一: Hash 算法 1. hash算法 hash称为散列表,其实本质上还是一个数组。主要是通过 hash(key...

网友评论

    本文标题:Hash算法

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