雜湊演算法的應用

2021-09-26 06:59:49 字數 975 閱讀 3480

將任意長度的二進位制值串對映成固定長度的二進位制值串,這個對映規則就是雜湊演算法。

通過原始資料對映之後得到的二進位制值串就是雜湊值。

乙個優秀的雜湊演算法需滿足以下幾點:

從雜湊值不能反向推導出原始資料(所以雜湊演算法也叫單向雜湊演算法)

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

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

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

安全加密

最常用於加密的雜湊演算法是md5 和 sha。

唯一標識

舉例說明:

在海量的相簿中,搜尋一張圖是否存在,如果我們將要查詢的二進位製碼串與相簿中的所有的二進位製碼串一一對比,那將是乙個非常耗時的操作。

我們可以給每個乙個唯一標識。可以從的二進位製碼串開頭取100個位元組,最後取100個位元組,將這200個位元組通過雜湊演算法得到的雜湊值作為該的唯一標識,搜尋的時候如果唯一標識相同,則進行全量對比。

資料校驗

雜湊函式

負載均衡

如何實現乙個會話粘滯的負載均衡演算法,就是我們需要再同乙個客戶端上,在一次會話中的所有請求都路由到同乙個伺服器上。

我們可以通過雜湊演算法,對客戶端ip得知或者會話id計算雜湊值,將取得的雜湊值與伺服器列表的大小進行取模運算,最終得到的值就是應該被路由到的伺服器編號。

資料分片

場景如下:

分布式儲存

現在網際網路面對的都是海量的資料、海量的使用者。我們有海量的資料需要快取,我們需要將資料分布到多台機器上。

我們可以根據前面資料分片的思想,通過雜湊演算法對資料取雜湊值,然後對機器個數取模,這個最終值就是應該儲存的快取機器編號。

但是如果我們需要對機器擴容,這時候就比較麻煩了,所有的資料都要重新計算雜湊值,然後重新搬移到正確的機器上,這樣就相當於所有的快取資料都失效,就會造成快取雪崩,壓垮資料庫。

這時候我們就用到了一致性雜湊演算法。

雜湊演算法的應用

我們前面幾節講到 雜湊表 雜湊函式 這裡又講到 雜湊演算法 你是不是有點一頭霧水?實際上,不管是 雜湊 還是 雜湊 這都是中文翻譯的差別,英文其實就是 hash 所以,我們常聽到有人把 雜湊表 叫作 雜湊表 hash 表 把 雜湊演算法 叫作 hash 演算法 或者 雜湊演算法 那到底什麼是雜湊演算...

雜湊演算法的應用

不管是 雜湊 還是 雜湊 這都是中文翻譯的差別,英文其實就是 hash 1.1 定義 將任意長度的二進位制值串對映成固定長度的二進位制值串,這個對映的規則就是雜湊演算法,而通過原始資料對映之後得到的二進位制值串就是雜湊值。1.2 如何設計乙個優秀的雜湊演算法?單向雜湊 從雜湊值不能反向推導出雜湊值 ...

雜湊演算法的理解和應用

我們下面引用一段文本來解釋什麼是雜湊演算法 雜湊是一種加密演算法 雜湊函式 hash function 也稱為雜湊函式或雜湊函式。雜湊函式是乙個公開函式,可以將任意長度的訊息m對映成為乙個長度較短且長度固定的值h m 稱h m 為雜湊值 雜湊值 hash value 雜湊值或者訊息摘要 messag...