Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 深入淺析Android手機衛士保存密碼時進行md5加密

深入淺析Android手機衛士保存密碼時進行md5加密

編輯:關於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加密的相關知識,希望對大家有所幫助!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved