package com.hx.util;
|
|
import java.security.MessageDigest;
|
|
public class MD5 {
|
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
|
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
|
|
public static String byteArrayToHexString(byte[] b) {
|
StringBuffer resultSb = new StringBuffer();
|
for (int i = 0; i < b.length; i++) {
|
resultSb.append(byteToHexString(b[i]));
|
}
|
return resultSb.toString();
|
}
|
|
private static String byteToHexString(byte b) {
|
int n = b;
|
if (n < 0)
|
n = 256 + n;
|
int d1 = n / 16;
|
int d2 = n % 16;
|
return hexDigits[d1] + hexDigits[d2];
|
}
|
|
public static String MD5Encode(String origin) {
|
String resultString = null;
|
|
try {
|
resultString = new String(origin);
|
MessageDigest md = MessageDigest.getInstance("MD5");
|
resultString = byteArrayToHexString(md.digest(resultString
|
.getBytes()));
|
} catch (Exception ex) {
|
|
}
|
return resultString;
|
}
|
|
/**密码加密 **/
|
public static String encryption(String str){
|
try{
|
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
md5.update(str.getBytes());
|
byte b[] = md5.digest();
|
int i ;
|
StringBuffer buf = new StringBuffer("");
|
for(int j = 0;j<b.length;j++){
|
i = b[j];
|
if(i<0)
|
i+=256;
|
if(i<116)
|
buf.append("0");
|
buf.append(Integer.toHexString(i));
|
}
|
str = buf.toString().substring(8, 24); //十六位
|
}catch (Exception e) {
|
e.printStackTrace();
|
throw new RuntimeException("加密程序错误!");
|
}
|
return str;
|
}
|
|
}
|