数据结构与算法之美学习笔记:第二十一讲

还记得2011年CSDN的“脱库”事件吗?当时,CSDN网站被黑客攻击,超过600万用户的注册邮箱和密码明问被泄露,很多网友对CSDN明⽂保存用户密码行为产生了不满。

如果你是CSDN的⼀名易程师,你会如何存储用户密码这么重要的数据吗?仅仅MD5加密一下存储就够了吗? 要想搞清楚这个问题,就要先弄明白哈希算法。


哈希算法历史悠久,业界著名的哈希算法也有很多,比如MD5、SHA等。在我们平时的开发中,基本上都是拿现成的直接用。所以,我今天不会重点剖析哈希算法的原理

,也不会教你如何设计一个哈希算法,而是从实战的⻆度告诉你,在实际的开发中,我们该如何用哈希算法解决问题。

一、什么是哈希算法

1、基本概念

2、如何设计一个优秀的哈希算法

3、MD5案例

4、哈希算法的常见应用

二、应用一:安全加密

1、常用的加密哈希算法

2、为什么哈希算法无法做到零冲突

鸽巢原理

哈希算法产生的哈希值的长度是固定且有限的

而我们要哈希的数据是无穷的,基于鸽巢原理

2^128=340282366920938463463374607431768211456

冲突的概率很小

3、没有绝对安全的加密

三、应用二:唯一标识

1、图片搜索案例

2、如何搜索

3、更高效

四、应用三:数据校验

1、BT软件案例

2、最终合并的电影无法观看

3、如何校验文件块的安全、正确、完整

五、散列函数

1、对散列算法冲突要求低

2、散列函数会关注散列表的那些方面

六、解答开篇 & 内容小结

1、用户信息被“脱裤”

2、针对字典攻击

 

posted @ 2019-08-08 22:19  活的潇洒80  阅读(374)  评论(0编辑  收藏  举报