1. 程式人生 > >android 資料加密

android 資料加密

1)android 資料加密
資料安全很重要,無論幹什麼都需要密碼,各種賬號密碼一旦洩露造成財產的損失,但是android對資料安全支援很弱,並沒有很好的資料保密措施。2)eg: 在使用sharedPreferences 時,它是操作一個xml配置檔案的,儲存的地址在data/data/應用報名/shared_prefs/***.xml,開啟檔案全部都是明文,使用資料庫也不安全,資料庫檔案具體路徑在data/data/database/***.db,如果未經加密處理,通過sqlite的管理工具,也能輕鬆的檢視資料庫中儲存的各種資訊,所以我們需要使用加密檔案:加密演算法有很多種: MD5 RSA AES 3DES1)MD5:
他是不可逆的加密演算法,也就是無法解密,主要用於客戶端使用者密碼加密,無論原始字串是什麼,MD5加密字串都是32位的十六進位制字串2)RSA :
演算法在客戶端使用公鑰加密,在服務端使用私鑰解密,這樣一來,即時加密的公鑰被洩密,沒有私鑰仍然無法解密,RSA加密的3個注意事項:1)需要匯入加密演算法依賴包,bcprov-jdk16-1.46.jar 將該jar包放在當前板塊的libs目錄下2)RSA加密的結果是位元組陣列,經過base64編碼才能形成最終的加密字串,3)根據需求對加密的字串做reverse倒序處理;3) AES加密AES是設計用來替換DES的高階加密演算法,該演算法是可逆演算法,支援對加密字串進行解密,解密時祕鑰必須與加密時一致。4)3DES 加密3DES是三重資料加密演算法,相當於對每個資料塊應用3次DES加密演算法,因為原先DES演算法的祕鑰長度過短,容易遭到暴力破解,所以3DES演算法是通過增加祕鑰的長度防範加密資料被破解,在實際開發中,3DES的祕鑰必須是24位位元組陣列,另外,3DES加密生成的位元組陣列,也得通過BASE64編碼為文字形式的加密字串。該演算法與AES一樣是可逆的,支援對加密字串進行解密,解密時祕鑰必須與加密時一致