在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经MD5加密后,传输至服务器保存起来。虽然MD5加密经常用,但是MD5的加密原理真说不上来,对MD5的认知目前仅仅停留在会使用的水平,想搞清楚还是要花点时间的,求大神赐教。
将字符串进行MD5加密,返回加密后的字符串
package com.xinchi.jmyy.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* MD5加密算法工具类
*
* @author Caoyx
*
*/
public class MD5Utils {
/**
* 32位MD5加密方法
* 16位小写加密只需getMd5Value("xxx").substring(8, 24);即可
*
* @param sSecret
* @return
*/
public static String getMd5Value(String sSecret) {
try {
MessageDigest bmd5 = MessageDigest.getInstance("MD5");
bmd5.update(sSecret.getBytes());
int i;
StringBuffer buf = new StringBuffer();
byte[] b = bmd5.digest();// 加密
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
return buf.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
}
在线测试MD5:
http://md5jiami.51240.com/