Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> [android] 手機衛士保存密碼時進行md5加密,androidmd5

[android] 手機衛士保存密碼時進行md5加密,androidmd5

編輯:關於android開發

[android] 手機衛士保存密碼時進行md5加密,androidmd5


一般的手機沒有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 "";
        
    }

}

 

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