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个一组
- 得到编码值,然后根据编码表转换字符