當前位置:
首頁 > 最新 > 蝦說區塊鏈-音頻-3-hash演算法

蝦說區塊鏈-音頻-3-hash演算法

歡迎收聽蝦說區塊鏈,現在區塊鏈這個概念在互聯網上相當火熱,這裡簡單做一個普及,不涉及項目推廣投資,單純的對區塊鏈相關基礎知識概念作一個說明講解。本人區塊鏈技術愛好者,結合相關區塊鏈資料總結整理了蝦說區塊鏈也是自己一個學習筆記,涉及相關內容如理解有誤,也請及時指正。

hash演算法

hash演算法也稱為散列函數演算法,在區塊鏈中應用的相當頻繁,在說明hash演算法之前先明確一個概念。

計算機在底層機器碼是採用二進位的模式,所謂二進位簡單來說就是底層以0/1來標識,所有數據傳輸記錄都以010101的模式來存儲記錄,兩種狀態也可認為就是一個日常生活中的開關,1標識開,0標識關。那麼計算機中最小的數據單位也就是這裡說的0或者1,這裡我們稱為bit(比特或者位),8個bit組成一個位元組。當然計算機中也有八進位、十六進位的表示,這裡暫時不展開討論。只明確底層一個二進位的概念。

Hash演算法廣泛應用於計算機信息科學領域中,也是十分基礎的密碼學相關知識。

Hash表,也稱散列表,學過計算機數據結構的都比較清楚這個概念。Hash表是根據關鍵碼值(key、value)而進行直接訪問的數據結構。把關鍵碼值映射到表中中一個位置來訪問記錄。加快查找速度。這個映射的函數稱為hash函數,存放記錄的數組叫散列表。

先來看一個轉換:touhezijindeyu經過各種hash加密後得到的值:

Hash演算法能把任意長度的二進位值映射為固定長度的二進位值,一般來說前一個二進位值我們成為明文,後面通過映射後得到的固定二進位值成為密文或者成為hash值。一旦在明文做任何修改,密文hash值就會有較大出入。

良好的hash演算法需要滿足:

Hash函數一個映像的關係組,那麼理論上會出現,明文x不等於y,那麼f(x)=f(y)的情況。避免出現不同明文出現相同hash值,這種稱為抗碰撞性,也就是上文說到的解決衝突。

散列函數的值需要儘可能的平均,同時需要良好的處理衝突的方法,一般解決衝突的方法如下:

常用的構造散列函數的方法:

Hash函數分類:

Hash演算法應用:

Hash函數使用限制:

Hash函數中,不論輸入的文件長度多少,輸出結果都是一組固定長度的數字字元,結合加密方法的概念,hash演算法是一個不可逆向的單項函數。文件有任意改動,即可檢測出來。同時hash演算法是一個無限大範圍映射到一個有限小範圍的模式,那麼節省空間同時便於查找。當然不是所有都適合hash演算法,總結以下幾個限制:

本文由幣乎(bihu.com)優質內容計劃支持。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 投河自盡的蝦 的精彩文章:

TAG:投河自盡的蝦 |