位置:org.springframework.util
�实现接口:无
继承类:无(抽象类)
作用:实现Base64的编码解码操作

一、效果

  1. public void test1() throws Exception{
  2. String str = "hello Base64Util";
  3. byte[] encode = Base64Utils.encode(str.getBytes());
  4. System.out.println(new String(encode));
  5. // 输出:aGVsbG8gQmFzZTY0VXRpbA==
  6. byte[] decode = Base64Utils.decode(encode);
  7. System.out.println(new String(decode));
  8. // 输出:hello Base64Util
  9. }

对二机制内容进行Base64的文本转换,或对Base64文本进行解码转换。用于简单加密与文本显示

二、API

  1. /**
  2. 核心API:
  3. 对字节数组操作,返回字节数组对象
  4. 该类还有对字节数组操作,返回字符串对象的API,这里不展示
  5. */
  6. // 对字节数组进行Base64编码
  7. public static byte[] encode(byte[] src);
  8. // 对字节数组进行Base64解码
  9. public static byte[] decode(byte[] src);
  10. // 对字节数组进行"url safe"的Base64编码
  11. public static byte[] encodeUrlSafe(byte[] src);
  12. // 对字节数组进行"url safe"的Base64解码
  13. public static byte[] decodeUrlSafe(byte[] src);
  • Base64

用64个字符来表示任意二进制数据。编码后内容就是对原始数据进行一定长度的字节分组后,每一组数据与Base64的标准映射表对应字符一一映射后的内容。 标准Base64映射表包括 [‘A’, ‘B’, ‘C’, … ‘a’, ‘b’, ‘c’, … ‘0’, ‘1’, … ‘+’, ‘/‘] 共64个字符

  • “url safe”

由于标准的Base64编码后可能出现字符+和/,在URL中就不能直接作为参数,所以又有一种”url safe”的base64编码,其实就是把字符+和/分别变成-和_:

三、总结

该工具类设计并不复杂,其实就是对java.util.Base64类的核心API进行简单包装,默认采用UTF-8编码规则。

四、补充


参考资料: Java NIO之Charset类字符编码对象 base64 - 廖雪峰