Java編碼摘要算法實例解析
更新時間:2020年01月29日 10:35:06 投稿:yaominghui
這篇文章主要介紹了Java編碼摘要算法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了Java編碼摘要算法實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
URL 編碼與解碼
String s = "你好,世界!"; // URL 編碼 String urlEncodedString = URLEncoder.encode(s, "UTF-8"); // URL 解碼 String urlDecodedString = URLDecoder.decode(urlEncodedString, "UTF-8");
Base64 編碼與解碼
// Base64 編碼
String base64EncodedString = Base64
.getEncoder()
// 去掉 Base64 后補位的 =
.withoutPadding()
.encodeToString("你好,世界!!".getBytes(StandardCharsets.UTF_8));
// Base64 解碼
byte[] base64DecodedByteArray = Base64.getDecoder().decode(base64EncodedString);
String base64DecodedString = new String(base64DecodedByteArray, StandardCharsets.UTF_8);
byte[] 轉 16 進制字符串
后面摘要算法可視化結果時會用到
/**
* byte[] 按位轉換為 16 進制 String
* @param aData 需要轉換的 byte[]
* @return byte[] 按位轉換為的 16 進制 String
*/
public static String byteArrayToHexString(byte[] aData) {
final char[] hexChars = "0123456789abcdef".toCharArray();
// 一個字節(jié)用兩個 16 進制字符表示
StringBuilder stringBuilder = new StringBuilder(aData.length * 2);
for (byte b : aData) {
// 高 4 位轉換為 16 進制
stringBuilder.append(hexChars[(b >>> 4) & 0x0f]);
// 低 4 位轉換為 16 進制
stringBuilder.append(hexChars[b & 0x0f]);
}
return stringBuilder.toString();
}
MD5 算法
// 參數(shù)為摘要算法的名稱
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
// 以下兩行代碼相當于 messageDigest.update("你好,世界!".getBytes(StandardCharsets.UTF_8));
messageDigest.update("你好,".getBytes(StandardCharsets.UTF_8));
messageDigest.update("世界!".getBytes(StandardCharsets.UTF_8));
byte[] md5Bytes = messageDigest.digest();
SHA1 算法
// SHA256 把算法名稱換一下就行了
MessageDigest messageDigest = MessageDigest.getInstance("SHA1");
// 以下兩行代碼相當于 messageDigest.update("你好,世界!".getBytes(StandardCharsets.UTF_8));
messageDigest.update("你好,".getBytes(StandardCharsets.UTF_8));
messageDigest.update("世界!".getBytes(StandardCharsets.UTF_8));
byte[] md5Bytes = messageDigest.digest();
,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值
相關文章
關于IDEA2020.1新建項目maven PKIX 報錯問題解決方法
這篇文章主要介紹了關于IDEA2020.1新建項目maven PKIX 報錯問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
基于idea 的 Java中的get/set方法之優(yōu)雅的寫法
這篇文章主要介紹了基于idea 的 Java中的get/set方法之優(yōu)雅的寫法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
kafka 啟動報錯 missingTopicsFatal is true的解決
這篇文章主要介紹了kafka 啟動報錯 missingTopicsFatal is true的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

