首页
社区
课程
招聘
[旧帖] [原创]神马是哈希 0.00雪花
发表于: 2011-3-22 14:52 1866

[旧帖] [原创]神马是哈希 0.00雪花

2011-3-22 14:52
1866
神马是哈希?
HASH即是散列函数。指把任意长度信息通过散列算法变换成固定长度的散列值。
哈希的主要用途:
1.散列表:快速查找数据
2.数据完整性效验。

关于散列表
假设有一个英语字典程序中只要输入一个单词,就会显示对应的解释
比如gelivable          对应        [‘gelivəbl]给力
但是程序是如何从数据中找到相应解释的地址?

在储存的时候总是通过 地址1=hash(gelivable) 这种方式存放对应解释。那么在查找的时候就可以快速找到地址。

散列表的一个小缺陷(也许不能称之为缺陷)
哈希函数总是把任意长度的信息通过哈希函数生成固定长度的散列值。也就是说理论上有无限个单词,但是散列值(也就是地址)是有限的。那么势必会存在好几个单词他们的解释存放在一个地址上。
解决办法:在存放解释数据时,对于多对单情况进行标记,当查找时在这几个单词中再进行查找。

哈希函数对散列表的影响
一个好的哈希函数,会尽可能的把单词对应地址均匀分散,尽可能的避免多对单的情况。

2.数据完整性效验。
文件效验

身份效验

这是我的密码的MD5散列值:F91EBD69F93FE3B65B4F5E1EFA772441

MD5的破解(http://www.cmd5.com/)


“本站数据量宇宙第一,实时查询记录超过7.8万亿条,其中95%以上全球独有,共占用80T硬盘,已包含11位及11位以下数字、7-8位小写字母加数字、6位大小写字母加数字等组合、以及大量其它数据(最长达20位)。”
也就是说你的密码如果是11位及11位以下数字、7-8位小写字母加数字、6位大小写字母加数字等组合,那么是相当不安全的。

哈希函数对数据完整性效验的影响。
单向的:知道算法情况无法找到哈希函数的逆函数。也就说如果有y=hash(m),那么无法通过m计算出y。
强抗碰撞的:要找到m1,m2(m1!=m2)满足hash(m1)=hash(m2)是非常困难的。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费
支持
分享
最新回复 (9)
雪    币: 3435
活跃值: (3314)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
改密码去
2011-3-22 14:53
0
雪    币: 3435
活跃值: (3314)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
分够了,买码
2011-3-23 12:57
0
雪    币: 437
活跃值: (130)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
4
看看
2011-3-23 15:12
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
原来是筹钱买码的
2011-3-23 21:54
0
雪    币: 25
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你如何获得密文的?自己写程序?
2011-3-23 23:00
0
雪    币: 3435
活跃值: (3314)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
7
你指的是身份效验那张图吗?用WSockExpert截取的封包。
2011-3-23 23:45
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
分还是不够
2011-3-24 00:07
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢分享!辛苦了!
2011-3-24 15:36
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
2012-3-18 00:12
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册