摘要算法: 通過壹個函數,把任意長度的數據轉換為壹個長度固定的數據串(通常用16進制的字符串表示)
常見的摘要算法有:MD5、SHA1、SHA256、SHA512。
摘要作用: 檢測內容是否發生修改。
存在問題: 消息發送過程中,可被中間人修改消息內容,並生成新的摘要,消息接收者不能確定消息是否被篡改。
數字簽名,即是用消息發送者的 私鑰 加密 摘要 後生成的內容。該內容只能用發送者的公鑰進行解密,所以可以防止他人修改。
數字簽名的目的是為了確保該消息是發送者發送的,中途沒有被修改或替換。
存在問題: 數字簽名可以解決消息被中間人修改的問題,但前提是消息接收者拿到的發送者的公鑰是真實的。如果拿到的公鑰不是發送者的,而是中間人的公鑰,那麽消息還是可以被篡改。
數字證書,是通過第三方(壹般稱為CA)頒發的,壹般是用第三方的私鑰來加密消息發送者的公鑰和相關信息而生成的。這樣,消息接收者用第三方的公鑰來進行解密證書,得到消息發送者的公鑰。
數字證書解決的問題是:防止消息發送者的公鑰被中途替換,從而解決了單純的 摘要 和 數字簽名 的問題。