溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java語言描述MD5加密工具類實(shí)例代碼

發(fā)布時(shí)間:2020-09-12 21:41:14 來源:腳本之家 閱讀:117 作者:jopen 欄目:編程語言

編程中經(jīng)常有用到MD5加密的情況,Java語言并沒有像PHP一樣提供原生的MD5加密字符串的函數(shù),需要MD5加密的時(shí)候,往往需要自己寫。

代碼如下:

import java.security.MessageDigest;
public class MD5 {
	//公鹽
	private static final String PUBLIC_SALT = "demo" ;
	//十六進(jìn)制下數(shù)字到字符的映射數(shù)組 
	private final static String[] hexDigits = {"0", "1", "2", "3", "4", 
	  "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
	/**
  * 用戶密碼加密,鹽值為 :私鹽+公鹽
  * @param password 密碼
  * @param salt 私鹽
  * @return MD5加密字符串
  */
	public static String encryptPassword(String password,String salt){
		return encodeByMD5(PUBLIC_SALT+password+salt);
	}
	/**
  * md5加密算法
  * @param originString
  * @return 
  */
	private static String encodeByMD5(String originString){
		if (originString != null){
			try{
				//創(chuàng)建具有指定算法名稱的信息摘要 
				MessageDigest md = MessageDigest.getInstance("MD5");
				//使用指定的字節(jié)數(shù)組對摘要進(jìn)行最后更新,然后完成摘要計(jì)算 
				byte[] results = md.digest(originString.getBytes());
				//將得到的字節(jié)數(shù)組變成字符串返回 
				String resultString = byteArrayToHexString(results);
				return resultString.toUpperCase();
			}
			catch(Exception ex){
				ex.printStackTrace();
			}
		}
		return null;
	}
	/** 
  * 轉(zhuǎn)換字節(jié)數(shù)組為十六進(jìn)制字符串 
  * @param  字節(jié)數(shù)組 
  * @return 十六進(jìn)制字符串 
  */
	private static String byteArrayToHexString(byte[] b){
		StringBuffer resultSb = new StringBuffer();
		for (int i = 0; i < b.length; i++){
			resultSb.append(byteToHexString(b[i]));
		}
		return resultSb.toString();
	}
	/** 將一個(gè)字節(jié)轉(zhuǎn)化成十六進(jìn)制形式的字符串  */
	private static String byteToHexString(byte b){
		int n = b;
		if (n < 0) 
		   n = 256 + n;
		int d1 = n / 16;
		int d2 = n % 16;
		return hexDigits[d1] + hexDigits[d2];
	}
}

總結(jié)

以上就是本文關(guān)于Java語言描述MD5加密工具類實(shí)例代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他Java相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI