java中16位或32位MD5加密

import java.security.MessageDigest;

/**
 * @Description:MD5加解密工具
 * @author:liuyc
 * @time:2016年5月23日 上午11:11:16
 */
public class MD5Helper {
	/**
	 * @Description:加密-32位小写
	 * @author:liuyc
	 * @time:2016年5月23日 上午11:15:33
	 */
	public static String encrypt32(String encryptStr) {
		MessageDigest md5;
		try {
			md5 = MessageDigest.getInstance("MD5");
			byte[] md5Bytes = md5.digest(encryptStr.getBytes());
			StringBuffer hexValue = new StringBuffer();
			for (int i = 0; i < md5Bytes.length; i++) {
				int val = ((int) md5Bytes[i]) & 0xff;
				if (val < 16)
					hexValue.append("0");
				hexValue.append(Integer.toHexString(val));
			}
			encryptStr = hexValue.toString();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
		return encryptStr;
	}

	/**
	 * @Description:加密-16位小写
	 * @author:liuyc
	 * @time:2016年5月23日 上午11:15:33
	 */
	public static String encrypt16(String encryptStr) {
		return encrypt32(encryptStr).substring(8, 24);
	}

	public static void main(String[] args) {
		String encryptStr = "22222222222,./.,./.,./!@#$%^&*()";
		System.out.println(MD5Helper.encrypt32(encryptStr));
		System.out.println(MD5Helper.encrypt16(encryptStr));
	}
}


MD5加密小写,大写也简单,就是把加密后的串中字母转换成大写即可。String类就提供了字符串大小写互转的方法:.toLowerCase().toUpperCase(),有问题记得留言哦,有错误之处欢迎指正!

你可能感兴趣的:(java,MD5加密)