Base64是網絡上最常見的用于傳輸8Bit字節碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數據的方法。
Base64,就是包括小寫字母a-z、大寫字母A-Z、數字0-9、符號"+“、”/"一共64個字符的字符集,(任何符號都可以轉換成這個字符集中的字符,這個轉換過程就叫做base64編碼。
參考:https://baike.baidu.com/item/base64/8545775
base64作用
- 網絡傳輸:在網絡中傳輸二進制數據時,往往需要將其編碼為文本格式(例如 JSON 中傳輸二進制圖像數據)。
- 數據存儲:某些數據庫或文件格式要求文本數據,因此需要將二進制數據編碼為文本格式進行存儲。
- 安全性:對于某些文本格式要求安全性較高的場景(例如 URL 中傳遞參數),使用 URL 安全的 Base64 編碼可以避免特殊字符問題。
- java代碼
import java.util.Base64;public class MyMain {public static void main(String[] args) {String originalString = "Hello, World!";String base64 = encode64(originalString);System.out.println(base64);String originalBase64 = decode64(base64);System.out.println(originalBase64);}public static String encode64(String originalString){// 將字符串轉換為字節數組byte[] bytesToEncode = originalString.getBytes();// 創建Base64編碼器Base64.Encoder encoder = Base64.getEncoder();// 編碼字節數組String encodedString = encoder.encodeToString(bytesToEncode);return encodedString;}public static String decode64(String encodedString){// 創建Base64解碼器Base64.Decoder decoder = Base64.getDecoder();// 解碼Base64字符串byte[] bytesDecoded = decoder.decode(encodedString);// 將字節數組轉換回字符串String decodedString = new String(bytesDecoded);return decodedString;}}
base64編碼表:
轉碼過程
- 先轉成ascii
- 然后2進制, 6個一組
- 得到編碼值,然后根據編碼表轉換字符