對稱加密
1 簡介
對稱加密算法是應用較早的加密算法,又稱爲共享密鑰加密算法。在對稱加密算法中,使用的密鑰只有一個,發送和接收雙方都使用這個密鑰對數據進行加密和解密。這就要求加密和解密方事先都必須知道加密的密鑰。
數據加密過程:在對稱加密算法中,數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密處理,生成複雜的加密密文進行發送。
數據解密過程:數據接收方收到密文後,若想讀取原數據,則需要使用加密使用的密鑰及相同算法的逆算法對加密的密文進行解密,才能使其恢復成可讀明文。
2 常見算法
AES
、DES
、3DES
都是對稱的塊加密算法,加解密的過程是可逆的。常用的有 AES128
、AES192
、AES256
默認安裝的 JDK 尚不支持 AES256,需要安裝對應的 jce 補丁進行升級 jce1.7,jce1.8
2.1 DES算法
DES
加密算法是一種分組密碼,以 64
位爲分組對數據加密,它的密鑰長度是 56
位,加密解密用同一算法。
DES
加密算法是對密鑰進行保密,而公開算法,包括加密和解密算法。這樣,只有掌握了和發送方相同密鑰的人才能解讀由 DES
加密算法加密的密文數據。因此,破譯 DES 加密算法實際上就是搜索密鑰的編碼。對於 56 位長度的密鑰來說,如果用窮舉法來進行搜索的話,其運算次數爲 2^56 次。
2.2 3DES算法
3DES
是基於 DES 的對稱算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高。
2.3 AES算法
AES
加密算法是密碼學中的高級加密標準,該加密算法採用對稱分組密碼體制,密鑰長度的最少支持爲 128
位、 192
位、256
位,分組長度 128
位,算法應易於各種硬件和軟件實現。這種加密算法是美國聯邦政府採用的區塊加密標準。
AES
本身就是爲了取代 DES 的,AES
具有更好的安全性、效率和靈活性。