Java 8 Base64

原文:https://www.studytonight.com/java-8/java-8-base64-class

在 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 = = 这是加密文件