Dowemo


package com.example.md5;



import java.security.MessageDigest;



/**


 * 2017年8月31日12:24:00


 * MD5加密工具类


 */



public class MD5Util {


/**


 * MD5加密方法一:


 * MD5加码 生成32位md5码 


 */


 public static String string2MD5(String inStr){ 


 MessageDigest md5 = null; 


 try{ 


 md5 = MessageDigest.getInstance("MD5"); 


 }catch (Exception e){ 


 System.out.println(e.toString()); 


 e.printStackTrace(); 


 return""; 


 } 


 char[] charArray = inStr.toCharArray(); 


 byte[] byteArray = new byte[charArray.length]; 



 for (int i = 0; i <charArray.length; i++) 


 byteArray[i] = (byte) charArray[i]; 


 byte[] md5Bytes = md5.digest(byteArray); 


 StringBuffer hexValue = new StringBuffer(); 


 for (int i = 0; i <md5Bytes.length; i++){ 


 int val = ((int) md5Bytes[i]) & 0xff; 


 if (val <16) 


 hexValue.append("0"); 


 hexValue.append(Integer.toHexString(val)); 


 } 


 return hexValue.toString(); 



 } 



/** 


 * MD5加密方法二:


 * 加密解密算法 执行一次加密,两次解密 


 */


 public static String convertMD5(String inStr){ 



 char[] a = inStr.toCharArray(); 


 for (int i = 0; i <a.length; i++){ 


 a[i] = (char) (a[i] ^ 't'); 


 } 


 String s = new String(a); 


 return s; 



 } 



/**


 * MD5加密方法三:


 * */


 public static String makeMD5(String s) {


 char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};


 try {


 byte[] btInput = s.getBytes();


//获得MD5摘要算法的 MessageDigest 对象


 MessageDigest mdInst = MessageDigest.getInstance("MD5");


//使用指定的字节更新摘要


 mdInst.update(btInput);


//获得密文


 byte[] md = mdInst.digest();


//把密文转换成十六进制的字符串形式


 int j = md.length;


 char str[] = new char[j * 2];


 int k = 0;


 for (int i = 0; i <j; i++) {


 byte byte0 = md[i];


 str[k++] = hexDigits[byte0>> > 4 & 0xf];


 str[k++] = hexDigits[byte0 & 0xf];


 }


 return new String(str);


 } catch (Exception e) {


 e.printStackTrace();


 return null;


 }


 }



}










Copyright © 2011 Dowemo All rights reserved.    Creative Commons   AboutUs