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加密代码)