當前位置:編程學習大全網 - 熱門推薦 - Android加密算法總結

Android加密算法總結

1.概念:

Base64是壹種用64個字符(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/)來表示二進制數據的方法,只是壹種編碼方式,所以不建議使用Base64來進行加密數據。

2.由來:

為什麽會有Base64編碼呢?因為計算機中數據是按ascii碼存儲的,而ascii碼的128~255之間的值是不可見字符。在網絡上交換數據時,比如圖片二進制流的每個字節不可能全部都是可見字符,所以就傳送不了。最好的方法就是在不改變傳統協議的情況下,做壹種擴展方案來支持二進制文件的傳送,把不可打印的字符也能用可打印字符來表示,所以就先把數據先做壹個Base64編碼,統統變成可見字符,降低錯誤率。

3.示例:

加密和解密用到的密鑰是相同的,這種加密方式加密速度非常快,適合經常發送數據的場合。缺點是密鑰的傳輸比較麻煩。

1.DES

DES全稱為Data Encryption Standard,即數據加密標準,是壹種使用 密鑰加密 的塊算法。

DES算法把64位的明文輸入塊變為64位的密文輸出塊,它所使用的密鑰也是64位,密鑰事實上是56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位,使得每個密鑰都有奇數個1)分組後的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。

2.3DES

3DES(或稱為Triple DES)是三重 數據加密算法 (TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。是DES向AES過渡的加密算法,它使用3條56位的密鑰對數據進行三次加密。是DES的壹個更安全的變形。它以DES為基本模塊,通過組合分組方法設計出分組加密算法。比起最初的DES,3DES更為安全。

3.AES

AES全稱Advanced Encryption Standard,即高級加密標準,當今最流行的對稱加密算法之壹,是DES的替代者。支持三種長度的密鑰:128位,192位,256位。

AES算法是把明文拆分成壹個個獨立的明文塊,每壹個明文塊長128bit。這些明文塊經過AES加密器的復雜處理,生成壹個個獨立的密文塊,這些密文塊拼接在壹起,就是最終的AES加密結果。

但是這裏涉及到壹個問題:假如壹段明文長度是192bit,如果按每128bit壹個明文塊來拆分的話,第二個明文塊只有64bit,不足128bit。這時候怎麽辦呢?就需要對明文塊進行填充(Padding):

AES的工作模式,體現在把明文塊加密成密文塊的處理過程中。

加密和解密用的密鑰是不同的,這種加密方式是用數學上的難解問題構造的,通常加密解密的速度比較慢,適合偶爾發送數據的場合。優點是密鑰傳輸方便。

1.SHA

安全散列算法(英語:Secure Hash Algorithm,縮寫為SHA)是壹個密碼散列函數家族,是FIPS所認證的安全散列算法。能計算出壹個數字消息所對應到的,長度固定的字符串(又稱消息摘要)的算法,且若輸入的消息不同,它們對應到不同字符串的機率很高。

SHA分為SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512五種算法,後四者有時並稱為SHA-2。SHA-1在許多安全協定中廣為使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被視為是MD5(更早之前被廣為使用的雜湊函數)的後繼者。但SHA-1的安全性如今被密碼學家嚴重質疑;雖然至今尚未出現對SHA-2有效的攻擊,它的算法跟SHA-1基本上仍然相似;因此有些人開始發展其他替代的雜湊算法。

2.RSA

RSA算法1978年出現,是第壹個既能用於數據加密也能用於數字簽名的算法,易於理解和操作。

RSA基於壹個數論事實:將兩個大素數相乘十分容易,但想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,即公鑰,而兩個大素數組合成私鑰。公鑰是可提供給任何人使用,私鑰則為自己所有,供解密之用。

3.MD5

MD5信息摘要算法 (英語:MD5 Message-Digest Algorithm),壹種被廣泛使用的密碼散列函數,可以產生出壹個128位(16字節)的散列值,用於確保信息傳輸完整壹致。具有如下優點:

XOR:異或加密,既將某個字符或者數值 x 與壹個數值 m 進行異或運算得到 y ,則再用 y 與 m 進行異或運算就可還原為 x。

使用場景:

(1)兩個變量的互換(不借助第三個變量);

(2)數據的簡單加密解密。

  • 上一篇:建築工地安全管理制度介紹?
  • 下一篇:如何使用瀏覽器上的搶票插件
  • copyright 2024編程學習大全網