java实现md5加密示例
生活随笔
收集整理的這篇文章主要介紹了
java实现md5加密示例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/*** 實(shí)現(xiàn)MD5加密**/
public class MD5 {/*** 獲取加密后的字符串* @param input* @return*/public static String stringMD5(String pw) {try { // 拿到一個MD5轉(zhuǎn)換器(如果想要SHA1參數(shù)換成”SHA1”) MessageDigest messageDigest =MessageDigest.getInstance("MD5"); // 輸入的字符串轉(zhuǎn)換成字節(jié)數(shù)組 byte[] inputByteArray = pw.getBytes(); // inputByteArray是輸入字符串轉(zhuǎn)換得到的字節(jié)數(shù)組 messageDigest.update(inputByteArray); // 轉(zhuǎn)換并返回結(jié)果,也是字節(jié)數(shù)組,包含16個元素 byte[] resultByteArray = messageDigest.digest(); // 字符數(shù)組轉(zhuǎn)換成字符串返回 return byteArrayToHex(resultByteArray); } catch (NoSuchAlgorithmException e) { return null; } }public static String byteArrayToHex(byte[] byteArray) { // 首先初始化一個字符數(shù)組,用來存放每個16進(jìn)制字符 char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' }; // new一個字符數(shù)組,這個就是用來組成結(jié)果字符串的(解釋一下:一個byte是八位二進(jìn)制,也就是2位十六進(jìn)制字符(2的8次方等于16的2次方)) char[] resultCharArray =new char[byteArray.length * 2]; // 遍歷字節(jié)數(shù)組,通過位運(yùn)算(位運(yùn)算效率高),轉(zhuǎn)換成字符放到字符數(shù)組中去 int index = 0;for (byte b : byteArray) { resultCharArray[index++] = hexDigits[b>>> 4 & 0xf]; resultCharArray[index++] = hexDigits[b& 0xf]; }// 字符數(shù)組組合成字符串返回 return new String(resultCharArray); }
}
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的java实现md5加密示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: myeclipse部署项目后,debug
- 下一篇: java 连接mysql 并测试是否成功