Java Base64

Java Base64 在 Java 8 現在具有用於 Base64 編碼的內建編碼器和解碼器,總共有三種編碼器,基本、 MIME 和 URL 編碼器,依照 RFC 4648 、 RFC 2045 中指定的 Base64 字母表,將二進位資料轉換為文字格式,已經成為 Java 類別函式庫的標準,將二進位資料可視化,也常用來表示資料加密過後的內容,以便透過網路傳輸,不會損壞且不會遺失任何資料,接收端再將文字轉換為二進位資料, Base64 Java 增加了範例及基礎的操作方法,透過單元測試來驗證產出結果。

基本編碼器

輸出映射到一組字元 A-Za-z0-9+/ ,不添加任何行分隔符號,輸出編碼字串的長度必須是四的倍數,若不足夠,會根據需要在輸出末尾添加一兩個填充字元 (=) 。

MIME 編碼器

輸出映射到一組字元 A-Za-z0-9+/ ,是一種將非 ASCII 資料傳輸到電子郵件伺服器的規格,與 Base64 編碼類似,如果編碼的資料超過 76 個字元,則會資料將拆分為多行,每行最多包含 76 個字元,添加行分隔符號 \r\n ,輸出末尾不存在行分隔符號。

URL 編碼器

輸出映射到一組字元 A-Za-z0-9_- ,與基本編碼器相同,唯一的區別是對 URL 和檔案名稱安全,字元 + 換成 _ ,及字元 / 換成 – ,不添加任何行分隔符號,輸出編碼字串的長度必須是四的倍數,若不足夠,會根據需要在輸出末尾添加一兩個填充字元 (=) 。

Base64 Learning Java

Base64 工具類別提供了一套靜態方法取得編解碼器,將位元組轉成字串,同時也使用 Apache Commons Codec 的實用 API 進行編解碼, Java Base64 Course 分享學習經驗及問題解決方案。

Initialize Base64

建立 Base64 Basic 、 MIME 、 URL 等類型的編解碼器,學習 Base64 編碼、解碼的操作及應用。

Base64.Encoder encoder = Base64.getEncoder();
String value = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
String encodedString = encoder.encodeToString(value.getBytes(StandardCharsets.UTF_8.toString()));
assertThat(encodedString)
		.isEqualTo("QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLw==");

Base64.Decoder decoder = Base64.getDecoder();
byte[] result = decoder.decode(encodedString);
assertThat(new String(result)).isEqualTo("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/");
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLw==

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/

Java Base64 Tutorial