package com.hhh.framework.tools.utils;
import org.apache.commons.codec.digest.DigestUtils;
import java.security.MessageDigest;
import java.util.Arrays;
/**
* md5
* @author 3hmzz
*/
public final class MD5Util {
/**
* MD5加密方法
* @param str 明文
* @return 密文(32位)
*/
public static String getMD5(String str){
String res = "";
try{
/** 创建加密对象 */
MessageDigest md = MessageDigest.getInstance("MD5");
/** 加密 */
md.update(str.getBytes("utf-8"));
/** 获取加密后的内容 (16位的字符数组) */
byte[] md5Bytes = md.digest();
System.out.println("加密前:" + Arrays.toString(str.getBytes()));
System.out.println("加密后:" + Arrays.toString(md5Bytes));
/** 把加密后字节数组转化成32位字符串 (把每一位转化成16进制的两位) */
for (int i = 0; i < md5Bytes.length; i++){
int temp = md5Bytes[i] & 0xFF;
/** 把temp值转化成16进制的两位数,如果不够两位前面补零 */
if (temp <= 0xF){
res += "0";
}
res += Integer.toHexString(temp);
}
}catch (Exception e){
throw new RuntimeException(e);
}
return res;
}
public static void main(String[] args) throws Exception {
String md5Hex = DigestUtils.md5Hex("123456");
String md5Hex2 = getMD5("123456");
System.out.println(md5Hex);
System.out.println(md5Hex2);
}
}