public class Md5Encoder { private final static Log logger = LogFactory
.getLog(Md5Encoder.class); //
private final static String ALGORITHM = "MD5"; /**
*
*/
private Md5Encoder() { } /**
* md5 encode.
* @param rawPass
* @return
*/
public static String encodePassword(String rawPass) {
MessageDigest messageDigest = null; try {
messageDigest = MessageDigest.getInstance(ALGORITHM);
} catch (NoSuchAlgorithmException e) {
logger.error(e.getMessage(), e);
} byte[] digest = messageDigest.digest(rawPass.getBytes()); if (logger.isDebugEnabled()) {
logger.debug("encode password is:"
+ new String(Hex.encodeHex(digest)));
} return new String(Hex.encodeHex(digest));
}
}
.getLog(Md5Encoder.class); //
private final static String ALGORITHM = "MD5"; /**
*
*/
private Md5Encoder() { } /**
* md5 encode.
* @param rawPass
* @return
*/
public static String encodePassword(String rawPass) {
MessageDigest messageDigest = null; try {
messageDigest = MessageDigest.getInstance(ALGORITHM);
} catch (NoSuchAlgorithmException e) {
logger.error(e.getMessage(), e);
} byte[] digest = messageDigest.digest(rawPass.getBytes()); if (logger.isDebugEnabled()) {
logger.debug("encode password is:"
+ new String(Hex.encodeHex(digest)));
} return new String(Hex.encodeHex(digest));
}
}
java.security.MessageDigest;
* 十六进制字符
*/
private final static String[] hexDigits = {
"0", "1", "2", "3", "4", "5", "6",
"7",
"8", "9", "a", "b", "c", "d", "e",
"f"}; public EncryptUtils() {
}
/**
* 转换字节数组为16进制字符串或者全数组字符串
* @param b 字节数组
* @return 16进制字串
*/
private static String byteArrayToString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (byte aB : b) {
resultSb.append(byteToHexString(aB));
}
return resultSb.toString();
} /**
* 转换字节数组为十六进制字符串
* @param b byte
* @return String
*/
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];
} /**
* MD5加密算法
* @param origin String 要加密的原始字符串
* @return String MD5散列值,由32个8位的字符组成,返回空值表示出错
*/
public static String MD5Encode(String origin) {
String resultString; try {
resultString = origin;
MessageDigest md = MessageDigest.getInstance("MD5");
resultString = byteArrayToString(md.digest(resultString.getBytes()));
} catch (Exception ex) {
log.error("Cannot encode the string by MD5", ex);
return "";
}
return resultString;
}