Java 8 Base64
类
在 Java 8 中,添加了一个新的类Base64
,它包含了获取 Base64 编码方案的编码器和解码器的静态方法。它支持 RFC 4648 和 RFC 2045 中指定的三种编码和解码类型。有关 RFC 的更多信息,请访问此链接。
基本编码和解码
在这种类型的编码和解码中,Base64 使用 RFC 4648 和 RFC 2045 中指定的“Base64 字母表”。编码器不添加任何额外的换行字符。解码时,解码器拒绝包含 base64 字母表以外字符的数据。
网址编码和解码
这里,Base64 使用 RFC 4648 中规定的“网址和文件名安全的 Base64 字母表”。编码器不添加任何额外的换行字符。而解码器拒绝包含 base64 字母表之外的字符的数据。
MIME 编码和解码
在这种编码和解码中,Base64 使用 RFC 2045 中规定的“Base64 字母表”。编码输出必须以不超过 76 个字符的行表示。编码输出的末尾没有添加行分隔符。
Base64 声明
public class Base64 extends Object
Base64 类方法
下面是 Base64 类的方法,用于对 Basic、Url 和 Mime 类型进行编码和解码。
|
修饰符和类型
|
方法和描述
| | 静态 Base64。解码器 getDecoder() | 它返回一个 Base64。使用基本类型 base64 编码方案进行解码的解码器。 | | 静态 Base64。编码器 getEncoder() | 它返回一个 Base64。使用基本类型 base64 编码方案进行编码的编码器。 | | 静态 Base64。解码器 getMimeDecoder() | 它返回一个 Base64。使用 MIME 类型 base64 解码方案进行解码的解码器。 | | 静态基地 64 号。编码器 getMimeEncoder() | 它返回一个 Base64。使用 MIME 类型 base64 编码方案进行编码的编码器。 | | 静态 Base64。编码器 getMimeEncoder(int lineLength,byte[] lineSeparator) | 它返回一个 Base64。编码器,使用具有指定行长度和行分隔符的 MIME 类型 base64 编码方案进行编码。 | | 静态 Base64。解码器 getUrlDecoder() | 它返回一个 Base64。使用网址和文件名安全类型 base64 编码方案进行解码的解码器。 | | 静态 Base64。编码器 getUrlEncoder() | 它返回一个 Base64。使用网址和文件名安全类型 base64 编码方案进行编码的编码器。 |
示例:基本编码和解码
在本例中,我们使用基本类型编码和解码操作来编码和解码字符串消息。我们使用一个 study thingth 单词来编码,使用encodeToString()
方法和decode()
方法来解码编码的消息。
import java.io.UnsupportedEncodingException;
import java.util.Base64;
public class STDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
// Encoding
Base64.Encoder be = Base64.getEncoder();
byte[] msg = "StudyToNight".getBytes();
String encodeMsg = be.encodeToString(msg);
System.out.println(encodeMsg);
// Decoding
Base64.Decoder bd = Base64.getDecoder();
byte[] decodeMsg = bd.decode(encodeMsg);
String dStr = new String(decodeMsg);
System.out.println(dStr);
}
}
U3R1ZHlUb05pZ2h0 学习之夜
示例:网址编码和解码
在这个例子中,我们使用 Url 编码和解码操作来编码一个 Url。这里,我们使用了今晚研究网站的主页 Url,使用getUrlEncoder()
方法进行编码,使用getUrlDecoder()
对 Url 进行解码。
import java.io.UnsupportedEncodingException;
import java.util.Base64;
public class STDemo {
public static void main(String[] args) throws UnsupportedEncodingException {
// Encoding
Base64.Encoder be = Base64.getUrlEncoder();
byte[] url = "https://www.studytonight.com".getBytes();
String encodeUrl = be.encodeToString(url);
System.out.println(encodeUrl);
// Decoding
Base64.Decoder bd = Base64.getUrlDecoder();
byte[] decodeUrl = bd.decode(encodeUrl);
String dUrl = new String(decodeUrl);
System.out.println(dUrl);
}
}
ahr 0 CHM 6 ly 93 D3 cuc 3r 1 zh 0 b25 pz 2h 0 lmnvbq = = https://www . studytonight . com
示例:MIME 编码和解码
在本例中,我们使用 getMimeEncoder()和 getMimeDecoder()方法对文本文件内容进行编码和解码。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Base64;
public class STDemo {
public static void main(String[] args) throws IOException {
byte[] bytes = Files.readAllBytes(Paths.get("abc.txt"));
// Encoding
Base64.Encoder be = Base64.getMimeEncoder();
String encodeFile = be.encodeToString(bytes);
System.out.println(encodeFile);
// Decoding
Base64.Decoder bd = Base64.getUrlDecoder();
byte[] decodeFile = bd.decode(encodeFile);
String dFile = new String(decodeFile);
System.out.println(dFile);
}
}
vghpcybcyblbmnyexb0zwqgzmlszq = = 这是加密文件