Base64和3DES算法
Base64加密算法
Base64是網絡上最常見的用於傳輸8Bit字節代碼的編碼方式之一,可用於在HTTP環境下傳遞較長的標識信息。它的優點是算法效率高,編碼出來的結果比較簡短,同時也具有不可讀性。
3DES加密算法
要理解3DES,就必須先搞懂什麽是DES。DES是美國一種由來已久的加密標準,它的工作原理是將數據按照8個字節一段進行加密或解密,從而得到一段8個字節的密文或者明文。之後按照順序將計算所得的數據連在一起即可。這裏需要註意的是,由於DES加密解密時要求數據長度必須為8個字節的倍數,因此當數據長度不足時必須先進行數據填充,這裏使用的填充算法根據系統的不同可能會略有不同。
DES算法有兩種工作模式,ECB(電子密本方式)和CBC(密文分組鏈接方式)
加密步驟如下:
1)首先將數據按照8個字節一組進行分組得到D1D2……Dn(若數據長度不是8字節的整數倍,先進行數據填充)
2)第一組數據D1與初始化向量I異或後的結果進行DES加密得到第一組密文C1
3)第二組數據D2與第一組的加密結果C1異或以後的結果進行DES加密,得到第二組密文C2
4)之後的數據以此類推,得到Cn
5)按順序連為C1C2C3……Cn即為加密結果。
解密是加密的逆過程,步驟如下:
1)首先將數據按照8個字節一組進行分組得到C1C2C3……Cn
2)將第一組數據進行解密後與初始化向量I進行異或得到第一組明文D1(註意:一定是先解密再異或)
3)將第二組數據C2進行解密後與第一組密文數據進行異或得到第二組數據D2
4)之後依此類推,得到Dn
5)按順序連為D1D2D3……Dn即為解密結果。
這裏註意一點,解密的結果並不一定是我們原來的加密數據,可能還含有你補得位,一定要把補位去掉才是你的原來的數據。
OK,最後我們來說說3DES。3DES又稱Triple DES,顧名思義就是三次DES算法。比起最初的DES,3DES更為安全。它是以DES為基本模塊,通過組合分組方法設計出的分組加密算法。設Ek()和Dk()代表DES算法的加密和解密過程,k代表DES算法使用的密鑰,P代表明文,C代表密文,則3DES加密解密的過程可表示為:
C=Ek3(Dk2(Ek1(P)))
P=Dk1(Ek2(Dk3(C)))
這裏可以k1=k3,但不能k1=k2=k3(如果相等的話就成了DES算法了)
Base64和3DES算法