雜湊演算法(Hash函式)簡單介紹

2021-10-07 20:52:37 字數 999 閱讀 5538

雜湊演算法的定義和原理:

將任意長度的二進位制值串對映為固定長度的二進位制值串,這個對映的規則,就是雜湊演算法。而通過原始資料對映之後得到的二進位制值串就是雜湊值。

設計乙個優秀的雜湊演算法,需要滿足下面幾點要求:

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

b.對輸入的資料比較敏感,原始資料即使修改乙個位元組,最後得到的雜湊值也大不相同

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

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

雜湊演算法的應用非常多,選擇常見的七個進行說明。分別是:

安全加密、唯一標識、資料校驗、雜湊函式、負載均衡、資料分片、分布式儲存。

hash函式理論上是不可逆的,但並非就是安全的。列如有名的 hash 函式 md5,2023年8月中國密碼學家王小雲教授首次公布了提出一種尋找 md5 碰撞的新方法。目前利用該方法用普通計算機幾分鐘內即可找到 md5 的碰撞。因此,2023年以後 md5 逐漸被更為安全的 sha-256 替代

而在國內,則使用國密 sm3 代替。sm3 是在 sha-256 的基礎上進行改進,中國國家密碼管理局 2010 年公布的中國商用密碼演算法標準

演算法輸出/位

輸入/位

輪數是否找到衝突

md5128

51264

是sha-1

160512

80尚未找到

sha-2 sha-224

22451264否

sha-2 sha-256

25651264否

sha-2 sha-384

384102480否

sha-2 sha-512

512102480否

sm3256

51264

Hash 雜湊介紹

1 雜湊概念 在順序結構以及平衡樹中,元素關鍵碼與其儲存位置之間沒有對映關係,想要查詢乙個元素必須要關鍵碼之間進行多次比較,順序查詢的時間複雜度為o n 在平衡二叉搜尋樹中查詢為o logn 搜尋的效率取決於關鍵碼的比較次數 但是有沒有一種理想的搜尋方法可以實現不用關鍵碼之間的對比從而找到乙個元素呢...

單向雜湊函式,HASH演算法

md2 md4 message digest algorithm,影響了md5,sha 1等演算法 md5 已被攻破,美國已經不推薦使用。md6 在改進中,因速度問題沒有被sha 3採用。sha 0 被淘汰 sha 1 secure hash algorithm 發現sha 1使用最廣泛,但理論上可...

Hash雜湊演算法

hash演算法 雜湊演算法將任意長度的二進位制值對映為較短的固定長度的二進位制值,短的二進位制值稱為雜湊值。雜湊值是一段資料唯一且極其緊湊的數值表示形式。如果雜湊一段明文而且哪怕只更改該段落的乙個字母,隨後的雜湊都將產生不同的值。要找到雜湊為同乙個值的兩個不同的輸入,在計算上是不可能的,所以資料的雜...