常用的單向散列函數有以下這些:
MD4:MD4是由Rivest于1990年設計的單向散列函數,能夠產生128bit的散列值。不過隨著Dobbertin提出尋找MD4散列的碰撞方法,現在已經不安全了。
MD5:MD5是由Rivest于1991年設計的單向散列函數,能夠產生128比特的散列值。MD5的強抗碰撞性已經被攻破,也就是說,現在已經能夠產生具備相同散列值的兩條不同的消息,因此它已經不安全了。
SHA-256、SHA-384、SHA-512:該三種函數都是由NIST設計的單向散列函數,它們的散列值長度分別為256bit、384bit、512bit。這些單向散列函數合起來統稱SHA-2,它們的消息長度也存在上限(SHA-256的上限接近于2的64方比特,SHA-384和SHA-512的上限接近于2的128比特)。這些單向散列函數于2002年和SHA-1一起作為FIPS PUB 180-2發布的。
PIPEMD-160:PIPEMD-160是于1996年設計出的一種能夠產生160bit的散列值的單向散列函數。PIPEMD-160是歐盟PIPE項目所設計的RIPEMD單向散列函數的修訂版。這一系列的函數還包括PIPEMD-128、PIPEMD-256、PIPEMD-320等其他一些版本。在CRYPTREC密碼清單》中,PIPEMD-160已經被列入“可謹慎運用的密碼清單”,即除了用于保持兼容性的目的以外,其他情況都不推薦使用。PIPEMD的強抗碰撞性已經于2004年被攻破,但PIPEMD-160還尚未被攻破。順便一提,比特幣使用的就是PIPEMD-160。
SHA-3:在2005年SHA-1的強抗碰撞性被攻破的背景下,NIST開始著手制定用于取代SHA-1的下一代單向散列函數SHA-3。SHA-3和AES一樣采用公開競爭的方式進行標準化。SHA-3的選拔于5年后的2012年塵埃落定,一個名叫Keccak的算法勝出,最終成為了SHA-3。
回答所涉及的環境:聯想天逸510S、Windows 10。
常用的單向散列函數有以下這些:
MD4:MD4是由Rivest于1990年設計的單向散列函數,能夠產生128bit的散列值。不過隨著Dobbertin提出尋找MD4散列的碰撞方法,現在已經不安全了。
MD5:MD5是由Rivest于1991年設計的單向散列函數,能夠產生128比特的散列值。MD5的強抗碰撞性已經被攻破,也就是說,現在已經能夠產生具備相同散列值的兩條不同的消息,因此它已經不安全了。
SHA-256、SHA-384、SHA-512:該三種函數都是由NIST設計的單向散列函數,它們的散列值長度分別為256bit、384bit、512bit。這些單向散列函數合起來統稱SHA-2,它們的消息長度也存在上限(SHA-256的上限接近于2的64方比特,SHA-384和SHA-512的上限接近于2的128比特)。這些單向散列函數于2002年和SHA-1一起作為FIPS PUB 180-2發布的。
PIPEMD-160:PIPEMD-160是于1996年設計出的一種能夠產生160bit的散列值的單向散列函數。PIPEMD-160是歐盟PIPE項目所設計的RIPEMD單向散列函數的修訂版。這一系列的函數還包括PIPEMD-128、PIPEMD-256、PIPEMD-320等其他一些版本。在CRYPTREC密碼清單》中,PIPEMD-160已經被列入“可謹慎運用的密碼清單”,即除了用于保持兼容性的目的以外,其他情況都不推薦使用。PIPEMD的強抗碰撞性已經于2004年被攻破,但PIPEMD-160還尚未被攻破。順便一提,比特幣使用的就是PIPEMD-160。
SHA-3:在2005年SHA-1的強抗碰撞性被攻破的背景下,NIST開始著手制定用于取代SHA-1的下一代單向散列函數SHA-3。SHA-3和AES一樣采用公開競爭的方式進行標準化。SHA-3的選拔于5年后的2012年塵埃落定,一個名叫Keccak的算法勝出,最終成為了SHA-3。
回答所涉及的環境:聯想天逸510S、Windows 10。