android随笔02——MD5加密代码

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public class Md5Utils {

private static final String YAN = "isgu&%^2345UTF23(&ywtdfkxjf47";

//YAN是随意设置的一串字母符号数字,跟密码原文组合到一起进行MD5算法加密,以起到混淆作用,可以有效干扰对密码的暴力破解​

public static String md5Encrypt(String password) {

try {

password= YAN+password;

StringBuffer sb = new StringBuffer();

MessageDigest digest = MessageDigest.getInstance("md5");// algorithm

byte[] bytes = digest.digest(password.getBytes()); // 参数是,明文字节数组,返回的就是加密后的结果,字节数组

for (byte b : bytes) { // 数byte 类型转换为无符号的整数

int n = b & 0XFF; // 将整数转换为16进制

String s = Integer.toHexString(n); // 如果16进制字符串是一位,那么前面补0

if (s.length() == 1) {

sb.append("0" + s);

} else {

sb.append(s); }

}

return sb.toString();

} catch (NoSuchAlgorithmException e) {

e.printStackTrace(); } return null; }

}

应用:

设置密码时:

String encryStr = Md5Utils.md5Encrypt(pwd1);//对输入的密码进行MD5加密

//保存加密后的结果 sp 就是SharedPreferences

sp.edit().putString("safe_key", encryStr).commit();

验证密码时:

//判断密码是否正确

//对用户输入的密码进行MD5加密

String encryPwd = Md5Utils.md5Encrypt(pwd1); //获得之前保存的密码密文

String oldPwd = sp.getString("safe_pwd", null);

if(oldPwd.equals(encryPwd)){ //密码正确 可以进入

MyUtils.showToast(ctx, "密码正确");

}else{

MyUtils.showToast(ctx, "密码不正确,请重新输入");

}

​​

​​​​

你可能感兴趣的:(android随笔02——MD5加密代码)