常見加密算法簡介

散列算法(MD5和SHA1)

MD5算法

MD5 用的是 哈希函數(shù),它的典型應(yīng)用是對一段信息產(chǎn)生 信息摘要,以 防止被篡改。嚴(yán)格來說,MD5 不是一種 加密算法 而是 摘要算法。無論是多長的輸入,MD5 都會輸出長度為 128bits 的一個串 (通常用 16 進(jìn)制 表示為 32 個字符)。

SHA1算法

SHA1 是和 MD5 一樣流行的 消息摘要算法,然而 SHA1 比 MD5 的 安全性更強。對于長度小于 2 ^ 64 位的消息,SHA1 會產(chǎn)生一個 160 位的 消息摘要。基于 MD5、SHA1 的信息摘要特性以及 不可逆 (一般而言),可以被應(yīng)用在檢查 文件完整性 以及 數(shù)字簽名 等場景。

MD5加密安全性一般但速度快,SHA1安全性高,但加密速度慢。

對稱加密算法(AES,DES,3DES)

AES算法

AES 加密算法是密碼學(xué)中的 高級加密標(biāo)準(zhǔn),該加密算法采用 對稱分組密碼體制,密鑰長度的最少支持為 128 位、 192 位、256 位,分組長度 128 位,算法應(yīng)易于各種硬件和軟件實現(xiàn)。這種加密算法是美國聯(lián)邦政府采用的 區(qū)塊加密標(biāo)準(zhǔn)。

AES 本身就是為了取代 DES 的,AES 具有更好的 安全性、效率 和 靈活性。

DES算法

DES 加密算法是一種 分組密碼,以 64 位為 分組對數(shù)據(jù) 加密,它的 密鑰長度 是 56 位,加密解密 用 同一算法。

DES 加密算法是對 密鑰 進(jìn)行保密,而 公開算法,包括加密和解密算法。這樣,只有掌握了和發(fā)送方 相同密鑰 的人才能解讀由 DES加密算法加密的密文數(shù)據(jù)。因此,破譯 DES 加密算法實際上就是 搜索密鑰的編碼。對于 56 位長度的 密鑰 來說,如果用 窮舉法 來進(jìn)行搜索的話,其運算次數(shù)為 2 ^ 56 次。

3DES算法

是基于 DES 的 對稱算法,對 一塊數(shù)據(jù) 用 三個不同的密鑰 進(jìn)行 三次加密,強度更高。

對稱加密算法特點:密鑰管理比較難,安全性中,但加密速度快,適合大數(shù)據(jù)量加解密。

非對稱加密算法(RSA)

RSA算法

RSA 加密算法是目前最有影響力的 公鑰加密算法,并且被普遍認(rèn)為是目前 最優(yōu)秀的公鑰方案 之一。RSA 是第一個能同時用于 加密 和 數(shù)字簽名 的算法,它能夠 抵抗 到目前為止已知的 所有密碼攻擊,已被 ISO 推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。

RSA 加密算法 基于一個十分簡單的數(shù)論事實:將兩個大素數(shù)相乘十分容易,但想要對其乘積進(jìn)行 因式分解 卻極其困難,因此可以將 乘積 公開作為 加密密鑰。

非對稱加密算法特點:密鑰管理容易,安全性高,但加密速度慢,適合小數(shù)據(jù)量加解密或數(shù)據(jù)簽名。