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 }
时间: 2024-10-15 13:40:37