可以直接复制使用
/**
*
*/
package com.trafree.banking.server.hardcore.util;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @author Michael
*
*/
public class Md5Util {
private static char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' };
private static MessageDigest md5;
/**
* MD5加密转大写
*/
public static String MD5EncodeInUppercase(String beforeEncrypted,String charset) {
String resultString="";
try {
md5=MessageDigest.getInstance("MD5");
if(charset==null||charset.equals("")) {
resultString = byteArrayToHexString(md5.digest(beforeEncrypted.getBytes()));
}else {
resultString = byteArrayToHexString(md5.digest(beforeEncrypted.getBytes(charset)));
}
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return resultString.toUpperCase();
}
/**
* 字节数组转16进制字符串
*/
private static String byteArrayToHexString(byte[] digest) {
StringBuffer resultSb = new StringBuffer();
for(int i=0;i<digest.length;i++) {
resultSb.append(byteToHexString(digest[i]).toString());
}
return resultSb.toString();
}
private static Object byteToHexString(byte b) {
int n = b;
if (n < 0)
n += 256;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1]+""+ hexDigits[d2];
}
}