标准Base64与URL Base64、MIME Base64的区别主要在于编码后输出的结果不同,具体区别如下:

  1. 标准Base64

    输出结果包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个+和 /,没有回车符、换行符。

  2. URL Base64

    输出结果包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个-和_,没有回车符、换行符;与标准Base64相比,使用’-‘和’_‘来替换’+‘和’/’,以便于在URL传参使用。

  3. MIME Base64

    输出结果包含:64个可打印字符,包括大写字母A-Z、小写字母a-z、数字0-9共62个字符,再加上另外2个+和 /,编码输出每一行不超过76个字符,而且每行以“\r\n”符结束。

针对上述三种Base64编码,java有对应的工具方法实现:

1
2
3
4
5
6
//标准Base64
String basicEncoded = Base64.getEncoder().encodeToString("xxx".getBytes("utf-8"));
//URL Base64
String urlEncoded = Base64.getUrlEncoder().encodeToString("xxx".getBytes("utf-8"));
//MIME Base64
String mimeEncoded = Base64.getMimeEncoder().encodeToString("xxx".getBytes("utf-8"));