它的英文是hash,其本意是切碎并攪拌的意思,哈希函數(shù)的運算結果就是哈希值,通常簡稱為哈希,而哈希函數(shù)有時候也翻譯做散列函數(shù)。根據(jù)我們的搜索,在維基百科的定義中,哈希函數(shù)要做的事情是給一個任意大小的數(shù)據(jù)生成出一個固定長度的數(shù)據(jù),作為它的映射。
哈希算法在生活中的應用要比我們想象中要廣泛。
它可以檢驗信息是否是相同的,這樣的優(yōu)勢是可以節(jié)省重復數(shù)據(jù)傳送的時間。就像我們在一些網(wǎng)盤中上傳的文件,如果文件內(nèi)容相同的話,哪怕屬于不同的用戶,也可以通過對比哈希值避免向服務器重復上傳相同的文件,可以很大程度上節(jié)約存儲資源,提高存儲效率。除此之外,哈希算法也可以對網(wǎng)站注冊用戶的密碼進行加密保護。
在密碼學中,哈希算法的主要作用是用于消息摘要和簽名,主要用于消息的完整性校驗。哈希算法不可逆,用于密文保存密碼的簽名,網(wǎng)站后臺只保存簽名值。這樣即使網(wǎng)站保存的信息被盜取,也無法獲取用戶的密碼,具有更高的安全性。
下一步我們把哈希函數(shù)分類,更細致的聊聊哈希算法的特點。首先說哈希算法有很多種,例如md5,sha256等等,但是它們總體上可以分為兩大類,一類是普通哈希,另外一類是加密哈希,cryptographic hash function。
業(yè)界可以找到的哈希算法是有很多種的。我們可以大致按照輸出的哈希的長度來聊,雖然哈希算法的安全性也不單單是跟哈希長度有關,但是一般哈希值越長也就是越安全。
例如CRC-32的輸出是32 bit,也就是32位的二進制數(shù),表示成十六進制就是8位。MD5算法的哈希是32位16進制數(shù),比較常見。SHA-256是256個Bit,十六進制表示就是64位。這些算法可以分成普通哈希和加密哈希算法,兩種算法之間沒有特別明顯的區(qū)別。例如本來MD5就是設計出來做加密哈希的,但是后來由于計算機的發(fā)展MD5出現(xiàn)碰撞的可能性就很大了,所以目前MD5只能當普通哈希用,用來做數(shù)據(jù)校驗。
加密哈希跟普通哈希的區(qū)別就是安全性,一般原則是只要一種哈希算法出現(xiàn)過碰撞,就會不被推薦成為加密哈希了,只有安全度高的哈希算法才能用作加密哈希。
同時加密哈希其實也能當普通哈希來用,Git版本控制工具就是用SHA-1這個加密哈希算法來做完整性校驗的。一般來講越安全的哈希算法,處理速度也就越慢,所以并不是所有的場合都適合用加密哈希來替代普通哈希。
在密碼學領域,有兩個算法都是把數(shù)據(jù)做輸入,而輸出是一段誰也看不懂的數(shù)據(jù)。其中一個就是哈希算法,另外一個是加密算法。注意,哈希算法和加密算法是完全不同的。
首先哈希算法的輸出長度是固定的,而加密算法的輸出長度是跟數(shù)據(jù)本身長度直接相關的,第二,哈希是不可以逆向運算出數(shù)據(jù)的,而加密算法的輸出是要能夠逆向運算出數(shù)據(jù)的。關于加密算法。
相關閱讀推薦
最新資訊
最新游戲
逆轉裁判復蘇的逆轉手機版
查看第一棵樹手機版
查看單挑王
查看名將無雙PVP對戰(zhàn)版
查看明星制作人
查看繪真妙筆千山手機版
查看口袋怪物大戰(zhàn)
查看開心釣魚王
查看急速行進
查看熱門文章
熱門游戲
西普大陸 v1.1.49最新版
查看星球探險家 v65.94
查看團戰(zhàn)經(jīng)理手機版 v3.0
查看迷你戰(zhàn)機官方版 v1.0.1
查看光明旅者安卓版 v1.1.97
查看南瓜先生大冒險官方版解謎游戲 v1.1.8官方版
查看我要如何說再見官方版 v1.00.28
查看新3D坦克 v1.0.0.20安卓版
查看僵尸小鎮(zhèn)聯(lián)機版 v4.2最新版
查看混亂大槍戰(zhàn) v1.0.7中文版
查看神將世界 v1.5.11搶先版
查看瘋狂小人戰(zhàn)斗 v3.23.00官方單機版
查看水滸宋江傳2025最新版 v100.18.5
查看星艦實驗室最新版 v1.10.07
查看瘋狂派對go v0.100031安卓版
查看軍棋游戲 v1.82安卓版
查看微光正版 v1.2.1最新版
查看會說話的狗狗本
查看