1. 程式人生 > >Android常見加密演算法(總篇)

Android常見加密演算法(總篇)

3DES、MD5、Base64、AES都是較為常見的加密演算法,一般賬戶登入或者是傳輸敏感資訊都會使用到,以免資訊在傳遞給後臺伺服器時遭到攔截並破解。

3DES

3DES(或稱為Triple DES)是三重資料加密演算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。它相當於是對每個資料塊應用三次DES加密演算法。由於計算機運算能力的增強,原版DES密碼的金鑰長度變得容易被暴力破解;3DES即是設計用來提供一種相對簡單的方法,即通過增加DES的金鑰長度來避免類似的攻擊,而不是設計一種全新的塊密碼演算法。
演算法簡介
3DES是DES加密演算法的一種模式,它使用3條56位的金鑰對資料進行三次加密。資料加密標準(DES)是美國的一種由來已久的加密標準,它使用對稱金鑰加密法,是DES的一個更安全的變形。
使用範疇


用於賬號驗證登入傳輸資料時對密碼進行加密,服務端和客戶端會有一個相同的Key值,使用Key值進行加密解密。

MD5

Message Digest Algorithm MD5(中文名為訊息摘要演算法第五版)為電腦保安領域廣泛使用的一種雜湊函式,用以提供訊息的完整性保護。該演算法的檔案號為RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。MD5即Message-Digest Algorithm 5(資訊-摘要演算法5),用於確保資訊傳輸完整一致。是計算機廣泛使用的雜湊演算法之一(又譯摘要演算法、雜湊演算法),主流程式語言普遍已有MD5實現。將資料(如漢字)運算為另一固定長度值,是雜湊演算法的基礎原理,MD5的前身有MD2、MD3和MD4。
MD5演算法具有以下特點


1、壓縮性:任意長度的資料,算出的MD5值長度都是固定的(16位或者32位,現在一般使用32位加密)。
2、容易計算:從原資料計算出MD5值很容易。
3、抗修改性:對原資料進行任何改動,哪怕只修改1個位元組,所得到的MD5值都有很大區別。
4、強抗碰撞:已知原資料和其MD5值,想找到一個具有相同MD5值的資料(即偽造資料)是非常困難的。
MD5的作用是讓大容量資訊在用數字簽名軟體簽署私人金鑰前被”壓縮”成一種保密的格式(就是把一個任意長度的位元組串變換成一定長的十六進位制數字串)。除了MD5以外,其中比較有名的還有sha-1、RIPEMD以及Haval等。
使用範疇
一般用於計算Sign(簽名),也可用於密碼加密,資料資訊加密。值得注意的是MD5演算法是不可逆的,在進行計算的時候要注意輸入資料的大小寫,大小寫不同也會導致最後的加密結果不同。

Base64

Base64是網路上最常見的用於傳輸8Bit位元組程式碼的編碼方式之一,大家可以檢視RFC2045~RFC2049,上面有MIME的詳細規範。Base64編碼可用於在HTTP環境下傳遞較長的標識資訊。例如,在Java Persistence系統Hibernate中,就採用了Base64來將一個較長的唯一識別符號(一般為128-bit的UUID)編碼為一個字串,用作HTTP表單和HTTP GET URL中的引數。在其他應用程式中,也常常需要把二進位制資料編碼為適合放在URL(包括隱藏表單域)中的形式。
演算法簡介
Base64編碼可用於在HTTP環境下傳遞較長的標識資訊。例如,在Java Persistence系統Hibernate中,就採用了Base64來將一個較長的唯一識別符號(一般為128-bit的UUID)編碼為一個字串,用作HTTP表單和HTTP GET URL中的引數。在其他應用程式中,也常常需要把二進位制資料編碼為適合放在URL(包括隱藏表單域)中的形式。此時,採用Base64編碼不僅比較簡短,同時也具有不可讀性,即所編碼的資料不會被人用肉眼所直接看到。
使用範疇
用於對請求引數的加密,使得肉眼無法識別,不具有可讀性,一般配合其他加密演算法一起使用。

AES

高階加密標準(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高階加密標準由美國國家標準與技術研究院(NIST)於2001年11月26日釋出於FIPS PUB 197,並在2002年5月26日成為有效的標準。2006年,高階加密標準已然成為對稱金鑰加密中最流行的演算法之一。
演算法簡介
AES加密過程涉及到4種操作:位元組替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和輪金鑰加(AddRoundKey)。解密過程分別為對應的逆操作。由於每一步操作都是可逆的,按照相反的順序進行解密即可恢復明文。加解密中每輪的金鑰分別由初始金鑰擴充套件得到。演算法中16位元組的明文、密文和輪金鑰都以一個4x4的矩陣表示。
使用範疇
可用於密碼加密,賬戶資訊加密以及重要檔案加密儲存。

相關推薦

Android常見加密演算法

3DES、MD5、Base64、AES都是較為常見的加密演算法,一般賬戶登入或者是傳輸敏感資訊都會使用到,以免資訊在傳遞給後臺伺服器時遭到攔截並破解。 3DES 3DES(或稱為Triple DES)是三重資料加密演算法(TDEA,Triple Data

Android常見加密演算法MD5加密

MD5加密是不可逆的,加密後字串可取16位或32位。一定注意,MD5加密區分大小寫,加密出來的結果不同。 public class MD5Util { private static char hexDigits[] = { '0', '1', '2'

Android查缺補漏View--事件分發機制

touch事件 滑動沖突 今天 version schema ttr 步驟 isp win 事件分發機制是Android中非常重要的一個知識點,同時也是難點,相信到目前為止很多Android開發者對事件分發機制並沒有一個非常系統的認識,當然也包括博主個人在內。可能在平時的開

Android查缺補漏View--布局文件中的“@+id”和“@id”有什麽區別?

新增 布局 parent 直接 使用 margin 移除 控件 Coding Android布局文件中的“@+id”和“@id”有什麽區別? +id表示為控件指定一個id(新增一個id),如: <cn.codingblock.view.customer_view.

Android查缺補漏IPC-- 進程間通訊基礎知識熱身

內部 eat ack 學習過程 and ... 綁定 his nec 本文作者:CodingBlock 文章鏈接:http://www.cnblogs.com/codingblock/p/8479282.html 在Android中進程間通信是比較難的一部分,同時又非常重要

手把手帶你打造一個 Android 熱修復框架

本文來自網易雲社群作者:王晨彥前言熱修復和外掛化是目前 Android 領域很火熱的兩門技術,也是 Android 開發工程師必備的技能。目前比較流行的熱修復方案有微信的 Tinker,手淘的 Sophix,美團的 Robust,以及 QQ 空間熱修復方案。QQ 空間熱修復方

Android記憶體洩露利器hprof

set processName=com.sec.android.app.dialertab;android.process.acore;com.sec.android.provider.logsprovider

Android 開發神器系列工具Android WiFi ADB

               做為一個多年奮戰在Android 應用開發一線的程式設計師來說,程式除錯的苦是不言而喻的,在過去的很長一段時間裡,我們如果要除錯Android 應用只能通過USB資料線,一頭連著手機,一頭聯著電腦,不敢讓手機離開電腦半步。 、         

android AES加密解密最新版

專案中要用到AES加密,百度上的AES壓根不能用,也不知道是那年的東西了,和後臺不相容,後來,後臺把他的AES程式碼拷給我  通過PHP程式碼找到了對應的Android程式碼 原文地址:http://www.funboxpower.com/php_android_ios_a

Android學習之旅第一 SurfaceView的原理以及使用場景

為什麼要使用SurfaceView來實現動畫? 因為View的繪圖存在以下缺陷: View缺乏雙緩衝機制 當程式需要更新View上的影象時,程式必須重繪View上顯示的整張圖片 新執行緒無法直接更新View元件 SurfaceView的繪圖機制

Android Handler 訊息機制解惑

Android中的訊息處理機制概述 大家對於Android中的訊息處理機制的用法一定都比較熟悉,至於工作原理估計不少人有研究。就像我們自己寫的類我們用起來比較熟悉一樣,如果我們熟悉了訊息處理機制的具體實現,那麼我們用起來肯定也會事半功倍。 博主之前只是稍有涉

常用對稱加密演算法DES/AESPHP

看註釋,啥也不說了,歡迎各種跨平臺測試! /** * 常用對稱加密演算法類 * 支援金鑰:64/128/256 bit(位元組長度8/16/32) * 支援演算法:DES/AES(根據金鑰長度自動匹配使用:DES:64bit AES:128/256bit) * 支

值得關注的 25 個新 Android 庫和專案

這是我最新收集的 25 個 Android 庫和專案列表,你也許會發現它們有用,有趣,並值得檢視一下。所有的都在最近 3 個月釋出的,排序不分先後。 PS :有興趣的加入Android工程師交流QQ群:752016839 主要針對Android開發人員提升自己,突破瓶頸,相

Mac os x環境配置 Android ndk 開發環境eclipse

1.請確保安卓環境已經存在 3. 配置 .bash_profile 開啟終端,輸入命令 pico .bash_profile 首先 export PATH=${PATH}:/Users/Malone/Documents/android-ndk-r13b

SHA1加密演算法java實現

SHA1加密演算法 SHA是一種資料加密演算法,該演算法經過加密專家多年來的發展和改進已日益完善,現在已成為公認的最安全的雜湊演算法之一,並被廣泛使用。該演算法的思想是接收一段明文,然後以一種不可逆的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預

常見加密演算法java實現MD5,SHA-256,SHA-512

import org.apache.commons.codec.digest.DigestUtils; public class PasswordEncode {     private static String pwdAlgorithm = "MD5";     /**      * 加密密碼演算法  

2017最新PHP經典面試題目匯

4.0 .net true 服務 一次 模板 混合 符號 組織 原文鏈接:http://www.cnblogs.com/zhyunfe/p/6209097.html 1、雙引號和單引號的區別 雙引號解釋變量,單引號不解釋變量 雙引號裏插入單引號,其中單引號裏如果有變量

android與C# WebService基於ksoap通信C#

ldo art fadein length col scripts append hid ldoc 1.打開VS 2013新建項目>>ASP.NET空WEB應用程序(我用的是.net 4.0) 2.在剛建立的項目上加入新建項(Web

Android常見問題總結

時長 加載 col gen try pla 下載 pro 屬性 1、布局文件LinearLayout線性布局添加內容報錯。解決方法:線性布局LinearLayout中包裹的元素多余1個需要添加android:orientation屬性。 2、android 的應用APP怎麽

查詢演算法之——符號表引入

符號表的主要目的是用來儲存鍵值對,也就是將一個鍵和一個值關聯起來,它的主要操作為插入和查詢。 這篇只是為下一篇文章作為拋磚引玉,為不熟悉符號表的朋友做了一個大體的介紹,在文章的結尾列出了符號表的基本操作,有一定了解的朋友可以跳的下一篇文章(二叉查詢樹)。 首先我們必須討論幾個基本問題,這在之後的思想中將會