1. 程式人生 > >使用java自帶加密演算法實現文字的md5加密演算法

使用java自帶加密演算法實現文字的md5加密演算法

       本篇使用java自帶的MessageDigest實現對文字的md5加密演算法,具體程式碼如下:

 /**  
 *@Description: 將字串轉化為MD5
 */ 
package cn.yicha.novel.util;  

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
  
public class ParseMD5 {

	/**
	 * @param str
	 * @return
	 * @Date: 2013-9-6  
	 * @Author: lulei  
	 * @Description:  32位小寫MD5
	 */
	public static String parseStrToMd5L32(String str){
		String reStr = null;
		try {
			MessageDigest md5 = MessageDigest.getInstance("MD5");
			byte[] bytes = md5.digest(str.getBytes());
			StringBuffer stringBuffer = new StringBuffer();
			for (byte b : bytes){
				int bt = b&0xff;
				if (bt < 16){
					stringBuffer.append(0);
				} 
				stringBuffer.append(Integer.toHexString(bt));
			}
			reStr = stringBuffer.toString();
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return reStr;
	}
	
	/**
	 * @param str
	 * @return
	 * @Date: 2013-9-6  
	 * @Author: lulei  
	 * @Description: 32位大寫MD5
	 */
	public static String parseStrToMd5U32(String str){
		String reStr = parseStrToMd5L32(str);
		if (reStr != null){
			reStr = reStr.toUpperCase();
		}
		return reStr;
	}
	
	/**
	 * @param str
	 * @return
	 * @Date: 2013-9-6  
	 * @Author: lulei  
	 * @Description: 16位小寫MD5
	 */
	public static String parseStrToMd5U16(String str){
		String reStr = parseStrToMd5L32(str);
		if (reStr != null){
			reStr = reStr.toUpperCase().substring(8, 24);
		}
		return reStr;
	}
	
	/**
	 * @param str
	 * @return
	 * @Date: 2013-9-6  
	 * @Author: lulei  
	 * @Description: 16位大寫MD5
	 */
	public static String parseStrToMd5L16(String str){
		String reStr = parseStrToMd5L32(str);
		if (reStr != null){
			reStr = reStr.substring(8, 24);
		}
		return reStr;
	}
}