編輯:關於Android編程
推薦閱讀:
淺析Android手機衛士自定義控件的屬性
淺析Android手機衛士關閉自動更新
詳解Android 手機衛士設置向導頁面
一般的手機沒有root權限,進不去data/data目錄,當手機刷機了後,擁有root權限,就可以進入data/data目錄,查看我們保存的密碼文件,因此我們需要對存入的密碼進行MD5加密
獲取MessageDigest信息摘要器對象,調用MessageDigest.getInstance(“md5”),參數:規則
調用MessageDigest對象的digest(bytes)方法,得到加密的byte[] 數組,參數:byte[] 數組,調用String對象的getBytes()方法獲取到字節數組
用每一個byte去和11111111八個二進制位做與運算並且得到的是int類型:byte & 11111111
for(byte b : xxxxx) 循環中
運行 byte & 0xff得到 int值
調用Integer.toHexString(number),得到16進制並返回String類型
判斷String的長度是1的,在它的前面拼接上0
循環外面定義一個StringBuffer對象,調用StringBuffer對象的append()拼接起來字符串
調用StringBuffer對象的toString()方法,得到加密後的標准字符串結果
MD5可以被破解,包括md5(md5(md5()))這種形式,對所有可能性進行加密存入數據庫,然後與你的md5密碼比對,可以進行md5加鹽
軟件需要先卸載再測試,清除掉之前保存的sp文件
package com.qingguow.mobilesafe.utils; import java.security.MessageDigest; public class Md5Util { /** * 獲取MD5加密字符串 * @param pass * @return */ public static String md5Password(String pass){ MessageDigest messageDigest; try { messageDigest = MessageDigest.getInstance("md5"); byte[] bytes=messageDigest.digest(pass.getBytes()); StringBuffer sb=new StringBuffer(); for(byte b:bytes){ int number=b & 0xff; String str=Integer.toHexString(number); if(str.length()==1){ sb.append("0"); } sb.append(str); } return sb.toString(); } catch (Exception e) { e.printStackTrace(); } return ""; } }
以上內容是小編給大家介紹的Android手機衛士保存密碼時進行md5加密的相關知識,希望對大家有所幫助!
那如同這個題目,這裡面涉及的東西其實還是比較多的,RecycleView SwipeRefreshLayout,下拉刷新(這個就是SwipeRefreshLayout的)
眾所周知android studio會在library所依賴的app運行或者build之後自動生成jar,路徑為build/intermediates/bundles/d
接上一篇。 主要研究下bitmap和drawable的使用,以及兩者的區別。 先看測試代碼: = Build.VERSION_CODES.HONEYCOMB_MR1
先看下最終的效果靜態:動態:一、開始實現新建一個DoughnutProgress繼承View public class DoughnutProgress extends