??哈希函數(shù)偎窘,說的直白一點就是一種密碼學中的思想,通過給哈希函數(shù)輸入一個值產(chǎn)生一個哈希值溜在,通過這個哈希值逆向得不到輸入的值陌知,就是這么簡單,至于如何去實現(xiàn)掖肋,有好多種方式仆葡。關鍵的是要懂這種思想,人是思想的產(chǎn)物志笼,區(qū)塊鏈也是思想的產(chǎn)物沿盅,理解思想,才能更好的深入和創(chuàng)新技術纫溃。(作者:Share猿)
1.什么是哈希函數(shù)腰涧??紊浩?(透過現(xiàn)象看本質(zhì))
??哈希函數(shù)又稱散列函數(shù)窖铡,雜湊函數(shù)疗锐,他是一個單向密碼體制。說白了就是只有加密過程沒有解密過程费彼,哈希函數(shù)可以將任意長度的輸入經(jīng)過變化后得到固定長度的輸出滑臊,但是我們不能通過固定長度的輸出得到原始的輸入,這就是是哈希函數(shù)的思想之所在敌买。
??理想的哈希函數(shù)可以針對不同的輸入得到不同的輸出简珠,如果存在兩個不同的消息得到了相同的哈希值阶界,那我們稱這是一個碰撞虹钮。
2.哈希函數(shù)特征(通過本質(zhì)看特征)
??1).壓縮性:對于任意大小的輸入x,哈希值的長度很小膘融,并且是固定的長度芙粱。
??2).易計算性:給一個值很快的就可以計算出來。
??3).單向性:單向性也就是通過給定的哈希值得到原文是不可行的氧映,求解哈希函數(shù)的逆很困難
??4).抗碰撞性:理想的哈希函數(shù)是無碰撞的春畔,但是實際的算法設計中很難做到,有兩種抗碰撞性岛都。
????i. 弱抗碰撞性:對于給定的一個消息律姨,要發(fā)現(xiàn)另一個消息使其碰撞在計算上不可行
????ii. 強抗碰撞性:對于任意的一對不同的消息,使其碰撞在計算上不可行
??4).高靈敏度:當一個輸入位發(fā)生變化時臼疫,會有一半以上的輸出位發(fā)生變化
3.哈希的應用(通過特征去應用)
??1) 消息認證:在一個開放的網(wǎng)絡中择份,需要提供一個用來驗證消息完整性的服務和機制,即消息認證烫堤,這種服務的主要功能是確保收到的消息確實與發(fā)送的消息的來源都是真實有效
??2) 數(shù)字簽名:因為非對稱加密算法速度較慢荣赶,所以在消息摘要上進行數(shù)字簽名,在統(tǒng)計上可以認為與對文件本身進行數(shù)字簽名是等效的
??3) 口令的安全性:僅將口令的哈希值進行保存鸽斟,進行口令校檢的時候僅需比對哈希值即可拔创,即使攻擊者獲取了口令的哈希值,也無法計算出口令
??4) 數(shù)據(jù)完整性:比較熟悉的校檢算法有奇偶校檢和循環(huán)冗余校檢碼(CRC)富蓄,這兩種方式并沒有抗數(shù)據(jù)篡改的能力剩燥,他們一定程度上能檢測并糾正數(shù)據(jù)傳輸中的信道誤碼,但不能防止對數(shù)據(jù)的而已破壞立倍。
??小猿有一個夢想灭红,可以把區(qū)塊鏈通過直白的語言講給每一個人聽。從一篇博文開始帐萎!從一段視頻開始比伏!從一本書開始!如果您想讓您的團隊了解區(qū)塊鏈疆导!讓您的公司了解區(qū)塊鏈赁项!讓您的學生了解區(qū)塊鏈!可以私信小猿或者加小猿微信預約小猿,帶你們走進區(qū)塊鏈的世界悠菜!如果是西安的朋友舰攒,小猿可以在業(yè)余時間到貴公司為大家講解!只賺人氣不賺錢;诖住摩窃!哈哈!芬骄!
掃描以下公眾號關注小猿↓↓↓↓↓↓↓↓
更多資訊請在簡書猾愿、微博、今日頭條账阻、掘金蒂秘、CSDN都可以通過搜索“Share猿”找到小猿哦!L蕴姻僧!