數據結構與算法之美學習筆記:第二十一講

還記得2011年CSDN的「脫庫」事件嗎?當時,CSDN網站被黑客攻擊,超過600萬用戶的註冊郵箱和密碼明問被泄露,不少網友對CSDN明⽂保存用戶密碼行爲產生了不滿。java

若是你是CSDN的⼀名易程師,你會如何存儲用戶密碼這麼重要的數據嗎?僅僅MD5加密一下存儲就夠了嗎? 要想搞清楚這個問題,就要先弄明白哈希算法。算法


哈希算法歷史悠久,業界著名的哈希算法也有不少,好比MD五、SHA等。在咱們平時的開發中,基本上都是拿現成的直接用。因此,我今天不會重點剖析哈希算法的原理安全

,也不會教你如何設計一個哈希算法,而是從實戰的⻆度告訴你,在實際的開發中,咱們該如何用哈希算法解決問題。函數

1、什麼是哈希算法

一、基本概念

二、如何設計一個優秀的哈希算法

三、MD5案例

四、哈希算法的常見應用

2、應用一:安全加密

一、經常使用的加密哈希算法

二、爲何哈希算法沒法作到零衝突

鴿巢原理網站

哈希算法產生的哈希值的長度是固定且有限的加密

而咱們要哈希的數據是無窮的,基於鴿巢原理spa

2^128=340282366920938463463374607431768211456

衝突的機率很小設計

三、沒有絕對安全的加密

3、應用二:惟一標識

一、圖片搜索案例

二、如何搜索

三、更高效

4、應用三:數據校驗

一、BT軟件案例

二、最終合併的電影沒法觀看

三、如何校驗文件塊的安全、正確、完整

5、散列函數

一、對散列算法衝突要求低

二、散列函數會關注散列表的那些方面

6、解答開篇 & 內容小結

一、用戶信息被「脫褲」

二、針對字典攻擊

相關文章
相關標籤/搜索