資料結構和演算法 雜湊演算法

2021-09-10 03:43:38 字數 814 閱讀 2035

前面我們學習了雜湊表,雜湊函式,和雜湊演算法啥關係?其實不管雜湊還是雜湊,都是翻譯的差別,對於英文都是hash,所以雜湊=雜湊=hash

雜湊演算法的定義

將任意長度的二進位制串對映為固定長度的二進位制串,這種對映規則就是雜湊演算法。通過原始資料對映成的規定固定長度的二級制串就是雜湊值乙個優秀的雜湊演算法應該滿足以下幾個要求:

一 雜湊值不能反向推導出原始資料

二 對輸入資料非常敏感,哪怕原始資料只是修改了乙個bit,最後得到的雜湊值也不相同

三 雜湊衝突的概率非常小,對於不同的原始資料,雜湊值相同的概率非常小

四 雜湊演算法的執行效率要非常高效,針對較長的文字,也能快速計算出雜湊值

常用的雜湊演算法

md5 訊息摘要演算法

sha 安全雜湊演算法

des 資料加密標準

aes 高階加密標準

雜湊演算法的應用

應用一 安全加密

前面說到雜湊演算法的四個要求,第乙個要求就是為了防止原始資料洩露

應用二 唯一標識

假如現在有1w張,需要判斷是否存在庫里,這個時候我們可以通過md5 對進行資訊摘要,把生成的雜湊值作為的唯一標識,通過對比唯一標識來判斷是否在庫里

應用三 資料校驗

我們可以取出檔案的雜湊值,判斷檔案的完整性,因為雜湊值第二點要求,對資料非常敏感,哪怕修改了乙個bit,雜湊值也會不同

應用四 雜湊函式

前面說過,乙個好的雜湊函式,決定了雜湊衝突的概率和雜湊表的效能

資料結構和演算法 雜湊演算法

一 定義 1 將任意長度的二進位制值串對映為固定長度的二進位制值串,這個對映的規則就是雜湊演算法。通過原始資料對映之後得到的二進位制值串就是雜湊值。二 hash演算法編寫要求 從雜湊值不能反向推導出原始資料 對輸入資料非常敏感,哪怕原始資料只修改了乙個bit,最後得到的hash值也會變化 雜湊衝突的...

資料結構 雜湊演算法

最近開始學習王爭老師的 資料結構與演算法之美 通過總結再加上自己的思考的形式記錄這門課程,文章主要作為學習歷程的記錄。雜湊演算法的定義是將任意長度的二進位制值串對映為固定長度的二進位制值串。這個對映規則就是雜湊演算法。通過原始資料對映後得到的二進位制值串就是雜湊值。設計乙個優秀的雜湊演算法應滿足幾點...

資料結構和演算法 刷題 雜湊演算法

nums1 1,2,2,1 nums2 2,2 返回 2,2 雜湊是一種查詢演算法 from collections import counter from collections import defaultdict 不存在的key時 返回預設值 from collections import o...