在介紹單向雜湊函式之前,我們先了解一下什麼情況下需要使用到單向雜湊函式。
單向雜湊函式有乙個輸入和輸出。輸入稱為訊息,輸出稱為雜湊值。
雜湊值的長度跟訊息的長度無關,不論多少大小的長度的訊息,都會計算出固定長度的雜湊值。
單向雜湊函式具有下面幾個特性:
能夠根據任意長度的訊息計算出固定長度的雜湊值。
計算速度要快。
訊息不同,雜湊值也不同。
這就意味著,如果僅僅是一點點的變動都會引起整個雜湊值的巨大變化。
因為雜湊值的大小是固定的,所以有可能會出現不同的訊息產生相同雜湊值的情況。這種情況叫做碰撞。
難以發現碰撞的性質被稱為抗碰撞性。當給定某條訊息的雜湊值時,必須保證很難找到和該訊息具有相同雜湊值的另一條訊息。
單向雜湊函式必須具有單向性。所謂單向性是指無法通過雜湊值來反推出訊息的性質。
單向雜湊函式有很多實現方式,你甚至可以自己寫乙個。常見的如md4,md5, md(message digest)是訊息摘要的縮寫。
md4和md5是由rivest在2023年設計的,現在已經不再安全了。
sha-1 是由nist設計的一種能夠產生160位元雜湊值的單向雜湊函式。現在已經不推薦使用。
sha-256, sha-384, sha-512同樣是由nist設計的單向雜湊函式,他們的雜湊長度分別是256,384,512位元。這幾種單向雜湊函式統稱為sha-2。
sha-1已經在2023年被攻破了。
sha-3是在2023年sha-1被攻破的背景下開始制定的,sha-3是通過公開競爭的方法選拔出來的,最終被選中的演算法叫做keccak演算法。
單向雜湊演算法最後的hash值是有固定長度的,所以只要我們願意,總是可以不斷的重試,從而找到兩個相同的hash值。
單向雜湊函式
在介紹單向雜湊函式之前,我們先了解一下什麼情況下需要使用到單向雜湊函式。單向雜湊函式有乙個輸入和輸出。輸入稱為訊息,輸出稱為雜湊值。雜湊值的長度跟訊息的長度無關,不論多少大小的長度的訊息,都會計算出固定長度的雜湊值。單向雜湊函式具有下面幾個特性 能夠根據任意長度的訊息計算出固定長度的雜湊值。計算速度...
單向雜湊函式
之前討論的問題是 資訊保密。通過加密的方式 有時候,我們可能不需要對資訊保密,而是希望接收者能夠驗證在傳遞過程中的訊息有沒被修改,即入侵者不能用假訊息代替合法訊息。資料完整性 乙個生活中的問題 如何識別某個人的身份?身份證 指紋。對應的,我們有資料指紋。那麼乙個指紋函式需要滿足什麼條件?指紋能處理不...
單向雜湊函式總結
名稱安全性 說明md5 不安全md5可以被碰撞 1 sha 1 不安全除了用於對過去生成的雜湊值進行校驗外,不應該被用於新的用途,而是應該遷移到sha 2 sha 2 安全有效應對了針對sha 1的攻擊方法,因此說安全的,可以使用 sha 3 2 安全 1 2004年的國際密碼學會議 crypto ...