hash函數

簡單的說,hash函數就是把任意長的輸入字符串變化成固定長的輸出字符串的一種函數。通俗得說,hash函數用來生成信息的摘要。輸出字符串的長度稱爲hash函數的位數。

目前應用最爲廣泛的hash函數是SHA-1和MD5,大多是128位和更長。

hash函數在現實生活中應用十分廣泛。很多下載網站都提供下載文件的MD5碼校驗,可以用來判別文件是否完整。另外,比如在WordPress的數據庫,所有密碼都是保存的MD5碼,這樣即使數據庫的管理員也無法知道用戶的原始密碼,避免隱私泄露(很多人在不同地方都是用的同一個密碼)。

如果兩個輸入串的hash函數的值一樣,則稱這兩個串是一個碰撞(Collision)。既然是把任意長度的字符串變成固定長度的字符串,所以,必有一個輸出串對應無窮多個輸入串,碰撞是必然存在的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章