hash


世界十大算法就包含Hash算法,Hash的应用在编程领域无处不在。

1.到底是什么是Hash?

hash哈希是音译,本意是剁碎的食物[散列],输入一些信息将其捣碎后输出出来

通过散列算法,变换成固定长度的输出,该输出就是散列值

1.1 如果你是快递超市老板,你是怎么给快递安排货架?

快递点

  1. 取件码

2)存取基于相同的规则

3)分布均匀

4)取件码=》位置

把某个对象映射到某个地方 叫做 Hash

hashMap MD5都是hash

2.怎么设计Hash算法?

hash值理论上是可重复
但就像指纹那样,特别的小

hash函数是什么 杂凑函数 hash=Hash(m),
将一个长度输出成一个固定的值,
可以成hash值成摘要或指纹

hash算法应该有以下特性
1.确定性
2.不可逆(单向)
3.分散性(敏感性)
4.压缩性

3.MD5是怎么被“破解”的?

MD5的hash算法不是+-*/,是不可逆的
因为MD5在运算的时候已经彻底丢失了某种信息
就像位运算右移 101010 => 010101

那么为什么还是有MD5的密码被破解呢
那是因为hash值具有确定性,可以通过建立MD5密码,对密码进行两两比较

4.Hash可以用来干什么?

文件校验
签名


文章作者: iamfugui
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 iamfugui !
评论