📜  Java中的基本类型Base64编码和解码

📅  最后修改于: 2022-05-13 01:55:52.164000             🧑  作者: Mango

Java中的基本类型Base64编码和解码

Base 64是一种将二进制数据转换为文本格式的编码方案,以便编码的文本数据可以轻松地通过网络传输而不会损坏且不会丢失任何数据。(Base 64 格式参考)。
基本编码意味着没有向输出添加换行符,并且输出被映射到 A-Za-z0-9+/字符集中的一组字符,并且解码器拒绝该集合之外的任何字符。
将简单字符串编码为基本 Base 64 格式

说明:在上面的代码中,我们使用 getEncoder() 调用 Base64.Encoder,然后通过 encodeToString() 方法中的实际字符串的字节值作为参数传递来获取编码字符串。
将基本 Base 64 格式解码为字符串

说明:在上面的代码中,我们使用 getDecoder() 调用 Base64.Decoder ,然后将 decode() 方法中传递的字符串作为参数解码,然后将返回值转换为字符串。
下面的程序说明了Java中的编码和解码:
程序 1:将简单字符串编码为基本 Base 64 格式

Java
// Java program to demonstrate
// Encoding simple String into Basic Base 64 format
 
import java.util.*;
public class GFG {
    public static void main(String[] args)
    {
 
        // create a sample String to encode
        String sample = "India Team will win the Cup";
 
        // print actual String
        System.out.println("Sample String:\n"
                           + sample);
 
        // Encode into Base64 format
        String BasicBase64format
            = Base64.getEncoder()
                  .encodeToString(sample.getBytes());
 
        // print encoded String
        System.out.println("Encoded String:\n"
                           + BasicBase64format);
    }
}


Java
// Java program to demonstrate
// Decoding Basic Base 64 format to String
 
import java.util.*;
public class GFG {
    public static void main(String[] args)
    {
 
        // create an encoded String to decode
        String encoded
            = "SW5kaWEgVGVhbSB3aWxsIHdpbiB0aGUgQ3Vw";
 
        // print encoded String
        System.out.println("Encoded String:\n"
                           + encoded);
 
        // decode into String from encoded format
        byte[] actualByte = Base64.getDecoder()
                                .decode(encoded);
 
        String actualString = new String(actualByte);
 
        // print actual String
        System.out.println("actual String:\n"
                           + actualString);
    }
}


输出:
Sample String:
India Team will win the Cup
Encoded String:
SW5kaWEgVGVhbSB3aWxsIHdpbiB0aGUgQ3Vw

程序 2:将基本 Base 64 格式解码为字符串

Java

// Java program to demonstrate
// Decoding Basic Base 64 format to String
 
import java.util.*;
public class GFG {
    public static void main(String[] args)
    {
 
        // create an encoded String to decode
        String encoded
            = "SW5kaWEgVGVhbSB3aWxsIHdpbiB0aGUgQ3Vw";
 
        // print encoded String
        System.out.println("Encoded String:\n"
                           + encoded);
 
        // decode into String from encoded format
        byte[] actualByte = Base64.getDecoder()
                                .decode(encoded);
 
        String actualString = new String(actualByte);
 
        // print actual String
        System.out.println("actual String:\n"
                           + actualString);
    }
}
输出:
Encoded String:
SW5kaWEgVGVhbSB3aWxsIHdpbiB0aGUgQ3Vw
actual String:
India Team will win the Cup

参考:

  • https://docs.oracle.com/javase/10/docs/api/java Java()
  • https://docs.oracle.com/javase/9/docs/api/ Java/util/Base64.html#getDecoder–
  • https://www.geeksforgeeks.org/decode-encoded-base-64-string-ascii-string/
  • https://www.geeksforgeeks.org/encode-ascii-string-base-64-format/