import java.security.MessageDigest;
import org.apache.log4j.Logger;
public class EncoderByMd5 {
/**日志记录对象*/
private static final Logger logger = Logger.getLogger( EncoderByMd5.class );
/**
*
* md5的加密算法
*
* @param str 要加密的字符串
* @return 返回已经加密过的字符串
*
* @return String 返回已经加密过的字符串
*/
public String encoderByMd5(String str){
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (Exception e) {
logger.error( "md5 error!", e );
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
return md5StrBuff.toString();
}
public static void main(String[] args) {
EncoderByMd5 encoderByMd5 = new EncoderByMd5();
String st = encoderByMd5.encoderByMd5("aaaaaa");
System.out.println( st );
}
}
简单的实现方法:
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Md5Tset {
/**
* 将字符串通过MD5加密
* @param str
* @return
*/
public static String encodeStr(String str){
byte[] strByte = str.getBytes();
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
md.update(strByte);
byte[] newByte = md.digest();
StringBuilder sb = new StringBuilder();
//转换为16进制
for (int i = 0; i < newByte.length; i++) {
if ((newByte[i] & 0xff) < 0x10) {
sb.append("0");
}
sb.append(Long.toString(newByte[i] & 0xff, 16));
}
return sb.toString();
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
System.out.println("abc after by MD5 encryption: "+Md5Tset.encodeStr("abc"));
}
}