package com.vst.fs.utils;
import java.security.MessageDigest;
public class MD5Util
{
public static final String getMD5(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();
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;
}
public static final String getMD5To(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("Unicode");
byte[] btInput = toUnicodeMC(s);
MessageDigest mdInst = MessageDigest.getInstance("MD5");
//mdInst.update(s.getBytes("UTF-8"));
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;
}
public static byte[] toUnicodeMC(String s) {
byte[] bytes = new byte[s.length() * 2];
for (int i = 0; i < s.length(); i++) {
int code = s.charAt(i) & 0xffff;
bytes[i * 2] = (byte) (code & 0x00ff);
bytes[i * 2 + 1] = (byte) (code >> 8);
}
return bytes;
}
}