1. 程式人生 > >Base64和3DES算法

Base64和3DES算法

三次 app 相等 什麽 bit 要求 因此 必須 可用

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算法