Java新特性之Base64编码

什么是Base64编码

  java.util.Base64是Java 8引入的对字符进行编码解码的类库。

为什么要Base64编码

  对字符进行编码和解码,可以运用于字符串,URL,MIME中。

如何使用Base64编码

内嵌类

说明
static class Base64.Decoder 该类实现一个解码器用于,使用 Base64 编码来解码字节数据。
static class Base64.Encoder 该类实现一个编码器,使用 Base64 编码来编码字节数据。

方法

方法 说明
static Base64.Decoder getDecoder() 返回一个 Base64.Decoder ,解码使用基本型 base64 编码方案。
static Base64.Encoder getEncoder() 返回一个 Base64.Encoder ,编码使用基本型 base64 编码方案。
static Base64.Decoder getMimeDecoder() 返回一个 Base64.Decoder ,解码使用 MIME 型 base64 编码方案。
static Base64.Encoder getMimeEncoder() 返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案。
static Base64.Encoder getMimeEncoder(int lineLength, byte[] lineSeparator) 返回一个 Base64.Encoder ,编码使用 MIME 型 base64 编码方案,可以通过参数指定每行的长度及行的分隔符。
static Base64.Decoder getUrlDecoder() 返回一个 Base64.Decoder ,解码使用 URL 和文件名安全型 base64 编码方案。
static Base64.Encoder getUrlEncoder() 返回一个 Base64.Encoder ,编码使用 URL 和文件名安全型 base64 编码方案。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Test12 {
	public static void main(String[] args) {
		String s = "huangdayu.cn";
		s = encoder(s);
		System.out.println(s);
		s = decoder(s);
		System.out.println(s);
	}

	/***
	 * 加密
	 * @param s
	 * @return
	 */
	public static String encoder(String s) {
		return Base64.getEncoder().encodeToString(s.getBytes(StandardCharsets.UTF_8));
	}

	/***
	 * 解密
	 * @param s
	 * @return
	 */
	public static String decoder(String s) {
		return new String(Base64.getDecoder().decode(s), StandardCharsets.UTF_8);
	}
}

输出结果

1
2
aHVhbmdkYXl1LmNu
huangdayu.cn

参考文献

Java 8 官方文档
Java 8 新特性
Java 8 新特性终极指南

今日诗词

作者信息