BASE64 编码是用 64 个字符(A-Z,a-z,0-9,+,/)作为基本字符集,将二进制数据转换为字符串,达到初步加密的作用。
将二进制数据每 3 个字节一组(24 bit),重新按 bit 为单位划分为 4 组,每组 6 bit,每组可以获得 1 个数字索引,对应基本字符集中的字符,获得编码后的字符串。若编码的二进制数据不是 3 的倍数,末尾用 x00 字节补齐,再再末尾加上"=",表示补了几个字节,解码时会自动去掉。
Java8 中 java.util.Base64 工具类提供了静态方法实现:Basic 编码、URL 编码、MIME 编码。
final Base64.Decoder decoder = Base64.getDecoder();
final Base64.Encoder encoder = Base64.getEncoder();
// 编码
String str = decoder.encodeToString("星球指北".getBytes("utf-8"));
// 解码
String newStr = encoder.decode(str, "UTF-8")