MD5是hash,或者說在大分類上屬于MAC(Message Authentication Code)中文譯為“消息認(rèn)證碼”。問你問題這個人自己都沒有搞清楚,以為是加密(Encryption)呢。下面簡單說說Encryption和MAC的區(qū)別。
Encryption是為了保護(hù)明文的隱私性(privacy),防止隱私泄漏。設(shè)想一對小青年Alice和Bob還在曖昧中,倆人偷偷摸摸地去約會吃飯,不想讓別人知道。Alice想告訴Bob今天約會時幾點去吃飯,但是不想讓其他任何人(可以抽象為以她的情敵Carol為代表的一切其他人)知道他倆的吃飯時間,這時候就用到加密。加密后解密者可以從密文(ciphertext)中恢復(fù)出明文(plaintext),也就是吃飯時間。
到MAC的時候場景就變了。這時候Alice和Bob這對小(gou)青(nan)年(nv)關(guān)系已經(jīng)很穩(wěn)定了,路人皆知了。但是情敵Carol依然存在,賊心不死。Alice這個時候再也不怕倆人約會吃飯的時間被別人看到了,她怕的是情敵篡改時間,讓倆人不能碰面。于是她以明文發(fā)送時間,然后再附上對這個時間的MAC。Carol如果篡改了時間,那么MAC是照應(yīng)不上的。也就是,此時不是為了保護(hù)這個約會時間的隱私性,而是為了保護(hù)它的完整性(integrity)。
補充:
1. 在這個約會的例子里Carol當(dāng)然可以很輕易的連MAC一起篡改掉,即由(Time_1,Mac_1)直接變?yōu)?Time_2,Mac_2)。但是這只是為了和加密形成對比而舉的一個例子。實際應(yīng)用中,用MAC來保證軟件不被篡改什么的就不會發(fā)生這種情況。因為此時,MAC可以在真正的官方下載站上公布。
2. MAC是單向的,無法從密文中恢復(fù)出明文。所謂的“解密”其實就是猜測一個明文,對這個明文MAC看最后的結(jié)果對不對的上,這并不是解密。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。