java8 開始提供了一個Base64工具類,用來進行Base64編碼。 Base64是常用的一個編碼方案,用於網絡傳輸。它的是原理是將3字節變4字節。按6位進行從新組合,6位的2進制最大數是63,Base64定義了64個字符,分別是a-z,A-Z,0-9.'+','/'。這是RFC2045規定的。可是‘+’在URL中傳輸可能有問題,由於有些瀏覽器就+號變成空了。因此後面又出了個RFC4648規則。它的Base64編碼將最後兩位,'+'變成'-','/'變成‘_’。BASE64編碼按3字節劃分完後,會出現最後可能剩1個節節和2個字節的狀況。若是剩一個字節。變成BASE64最後還缺2個字節,缺的補‘=’號,缺幾個字節補幾個‘=’號。有些老的工具類可能會對Base64編碼後進行換行,這RFC2045裏面的一部分,默認通常是76個字符後換後,換行通常是添加/r/n。 JAVA的例子,出現+號,+號是62。 出現+號例子java
public static void main(String[] args) { //63 補碼1111_10_00 減- 1111_0111 取反1000_1000 byte[] a = {-0b0000_1000}; System.out.println( Base64.getEncoder().encodeToString(a)); }
結果以下:瀏覽器
+A==
出現-號例子:網絡
public static void main(String[] args) { //63 補碼1111_10_00 減- 1111_0111 取反1000_1000 byte[] a = {-0b0000_1000}; System.out.println( Base64.getUrlEncoder().encodeToString(a)); }
結果以下:工具
-A==