package com.dgrid.util;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
private static final char kHexChars[] = { '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
public static String md5(String text) {
return md5(text.getBytes());
}
public static String md5(byte[] bytes) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(bytes);
return MD5.bufferToHex(md.digest());
} catch (NoSuchAlgorithmException e) {
throw (new RuntimeException(e));
}
}
private static String bufferToHex(byte buffer[]) {
return MD5.bufferToHex(buffer, 0, buffer.length);
}
private static String bufferToHex(byte buffer[], int startOffset, int length) {
StringBuffer hexString = new StringBuffer(2 * length);
int endOffset = startOffset + length;
for (int i = startOffset; i < endOffset; i++)
MD5.appendHexPair(buffer[i], hexString);
return hexString.toString();
}
private static void appendHexPair(byte b, StringBuffer hexString) {
char highNibble = kHexChars[(b & 0xF0) >> 4];
char lowNibble = kHexChars[b & 0x0F];
hexString.append(highNibble);
hexString.append(lowNibble);
}
}