簡述摘要算法
摘要算法又稱哈希算法,也被叫做雜湊算法、散列算法,它表示輸入任意長度的數(shù)據(jù),輸出固定長度的數(shù)據(jù),相同的輸入數(shù)據(jù)始終得到相同的輸出,不同的輸入數(shù)據(jù)盡量得到不同的輸出。它的作用不是完成數(shù)據(jù)加密與解密工作,而是用來檢驗數(shù)據(jù)完整性的重要技術,運算結(jié)果具有不可逆性。
摘要算法的分類
- MD(Message Digest):消息摘要
包括:MD2,MD4,MD5。它?成的消息摘要都是128位的,從安全性上說:MD5 > MD4 > MD2。
- SHA(Secure Hash Algorithm):安全散列
包括:SHA-1(160),SHA-2(SHA-224,SHA-256,SHA-384,SHA-512)。

- MAC(Message Authentication Code):含有密鑰的散列函數(shù)算法
它包含了MD和SHA兩個系列的消息摘要算法,HMAC只是在原有的MD和SHA算法的基礎上添加了密鑰。MD系列:HmacMD2,HmacMD4,HmacMD5。
國密算法中的SM3也是摘要算法的一種。
摘要算法的特點
- 無論輸入的信息有多長,計算出來的摘要的長度總是固定的。
- 只要輸入的消息不同,對其進行摘要以后產(chǎn)生的摘要消息也必不相同;但相同的輸入必會產(chǎn)生相同的輸出。
- 消息摘要函數(shù)是單向函數(shù),即只能進行正向的信息摘要,而無法從摘要中恢復出任何的消息,甚至根本就找不到任何與原信息相關的信息。
- 雖然 “碰撞” 是肯定存在的,但好的摘要算法,沒有人能或者說極難從中找到“碰撞”。

摘要算法的應用
- 軟件文件驗證
在網(wǎng)絡上下載文件或者軟件的時候,通常都會有附上對應下載文件的摘要值,常用的是MD5或SHA1值。這樣做的目的就是確保文件或軟件的正確性和完整性。如果計算出來的摘要值,與網(wǎng)站上的摘要不相等,我們應認為下載的文件是不可信任的,應當做刪除處理。
- 數(shù)字簽名
數(shù)字簽名是現(xiàn)實社會中的簽名和蓋章這樣的行為在數(shù)字世界中的實現(xiàn)。但數(shù)字簽名的處理過程非常耗時,因此一般不會對整個消息內(nèi)容施加數(shù)字簽名,而是先取消息內(nèi)容的摘要值,對摘要值進行數(shù)字簽名。
- 信息驗證
雙方協(xié)商的信息摘要算法,做同樣的摘要運算,得到摘要值M',然后使用密鑰對簽名數(shù)據(jù)進行解密運算,得到發(fā)送方的摘要M;如果M' = M,則表示驗簽通過,接收的數(shù)據(jù)是可任性的。
- 安全報文傳輸
這主要是MAC算法的應用,最常見的就是POS與銀行后臺的報文傳輸。由于涉及到金融風險,所以在POS機與銀聯(lián)后臺通訊的過程中,除了對個人賬戶的敏感信息(如卡號、卡密碼)等做加密處理外,還需要對整一個通訊報文做MAC計算,在發(fā)送報文的時候,MAC值附在原始的密文后面以供接收方對接收的密文做MAC校驗。

摘要算法看似簡單,但其的應用廣度和使用頻次,卻可以說是最多的,即使是加密貨幣賴以生存的區(qū)塊鏈中,摘要算法也擔任著重要的崗位。
免責聲明:素材源于網(wǎng)絡,如有侵權(quán),請聯(lián)系刪稿。










