編碼(encoding)
編碼本質上是信息形式的轉化。
通過解碼可以還原原始信息。
編碼的目的是將消息轉化成統(tǒng)一的格式,方便在不同系統(tǒng)之中傳輸。
例如最常見的ASCII字符編碼。由于網(wǎng)絡上只能傳輸二進制數(shù)據(jù),任何數(shù)據(jù)如果想要經(jīng)由網(wǎng)絡傳輸,就必須先轉化成二進制,ASCII 提供了一個將A、B、C等字母轉化為二進制的規(guī)則。
例子:ASCII, Unicode, URL Encoding, Base64
摘要(digest)
摘要是通過散列函數(shù)對信息運算生成的固定大小的數(shù)字“指紋”。
相同信息使用同一散列函數(shù)生成的摘要總是相同,信息修改后生成的摘要總是與之前不同。
摘要信息不能被還原成原始信息。
摘要的目的是為了校驗信息的完整性,保證信息在傳輸過程中不被篡改。
例如你在網(wǎng)絡上需要下載一個非官方論壇軟件,但又擔心軟件被第三方篡改,可以將該軟件的md5值和官方下載的md5值進行對比,如果一致,則可放心使用。
例子:MD5, SHA, MAC
加密(encryption)
加密是將明文信息改變?yōu)殡y以讀取的密文內(nèi)容,使之不可讀。
加密信息能通過密鑰被還原為原始信息。
加密是為了保證信息安全,使得沒有正確密鑰的人不能獲取信息內(nèi)容。
例如你想給某人發(fā)送一封密信,或通過互聯(lián)網(wǎng)給人發(fā)送密碼,這些對隱秘性要求比較強的事情,就需要對信息進行加密。
例子:DES, AES, Blowfish, RSA
參考
編碼、摘要、加密的區(qū)別
http://goldenera.me/2017/02/16/編碼、摘要、加密的區(qū)別/