標籤:
1、在工具類的包下建立一個進行md5加密的工具類MD5Utils.java
1 package com.example.mobilesafe.utils; 2 import java.security.MessageDigest; 3 import java.security.NoSuchAlgorithmException; 4 public class MD5Utils { 5 /** 6 * md5加密方法 7 * @param password 8 * @return 9 */ 10 public static String md5Password(String password){ 11 try { 12 //得到一個資訊摘要器 13 MessageDigest digest = MessageDigest.getInstance("md5"); 14 byte[] result = digest.digest(password.getBytes()); 15 StringBuffer buffer = new StringBuffer(); 16 //要把每一個byte做一個與運算0xff,0xff是十六進位,十進位為255 17 for(byte b:result){ 18 //與運算 19 int number = b & 0xff; 20 String str = Integer.toHexString(number); 21 // System.out.println(str); 22 //如果位元不夠前面加個零 23 if(str.length()==1){ 24 buffer.append("0"); 25 } 26 buffer.append(str); 27 } 28 //標準的md5加密後的結果 29 return buffer.toString(); 30 } catch (NoSuchAlgorithmException e) { 31 // TODO Auto-generated catch block 32 e.printStackTrace(); 33 return ""; 34 } 35 } 36 }
2、在HomeActivity.java中對用SharedPreferences儲存的密碼資料進行調用加密
1 一處改動為第一次設定密碼時把密碼儲存到檔案中時進行md5加密: 2 if(password.equals(password_confirm)){ 3 //一致的話,就儲存密碼,把對話方塊消掉,還要進入手機防盜頁面 4 Editor editor = sp.edit(); 5 editor.putString("password", MD5Utils.md5Password(password)); 6 editor.commit(); 7 dialog.dismiss(); 8 Log.i(TAG, "一致的話,就儲存密碼,把對話方塊消掉,還要進入手機防盜頁面"); 9 } 10 11 另一處為判斷從檔案中讀取的MD5加密後的資料和當前輸入的資料md5加密後是否一樣 12 if(MD5Utils.md5Password(password).equals(savePassword)){ 13 //輸入的密碼是我之前設定的密碼 14 //把對話方塊消掉,進入首頁面 15 dialog.dismiss(); 16 Log.i(TAG, "把對話方塊消掉,進入首頁面"); 17 }
Android對敏感性資料進行MD5加密(基礎回顧)