在本指南中,我们将探索 Java 8 Base64
实用程序类,用于获取 Base64
编码方案的编码器和解码器。 Base64
是 packagejava.util
下的实用程序类。
编码后的字符串被映射到 A-Za-z0-9+/ 中的一组字符。编码器不添加任何换行(行分隔符)字符。解码器拒绝包含 A-Za-z0-9+/ 之外的字符的数据。
String originalString = "Stay Home Stay Safe";
System.out.println("Original String: " + originalString);
String encodedString = Base64.getEncoder().encodeToString(originalString.getBytes());
System.out.println("Encoded String: " + encodedString);
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
System.out.println("Decoded String: " + decodedString);
输出
Original String: Stay Home Stay Safe
Encoded String: U3RheSBIb21lIFN0YXkgU2FmZQ==
Decoded String: Stay Home Stay Safe
编码后的字符串被映射到 A-Za-z0-9+_ 中的一组字符。解码器拒绝包含 A-Za-z0-9+_ 之外的字符的数据。
String originalURL = "https://www.google.com/search?ei=KIyJXtq4KOic4-EP_P-10A0&q=websparrow.org";
System.out.println("Original URL String: " + originalURL);
String encodedURL = Base64.getUrlEncoder().encodeToString(originalURL.getBytes());
System.out.println("Encoded URL String: " + encodedURL);
byte[] decodedURLBytes = Base64.getUrlDecoder().decode(encodedURL);
String decodedURL = new String(decodedURLBytes);
System.out.println("Decoded URL String: " + decodedURL);
输出
Original URL String: https://www.google.com/search?ei=KIyJXtq4KOic4-EP_P-10A0&q=websparrow.org
Encoded URL String: aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9zZWFyY2g_ZWk9S0l5Slh0cTRLT2ljNC1FUF9QLTEwQTAmcT13ZWJzcGFycm93Lm9yZw==
Decoded URL String: https://www.google.com/search?ei=KIyJXtq4KOic4-EP_P-10A0&q=websparrow.org
编码输出必须以每行不超过 76 个字符的行表示,并使用回车 ‘\r’ 后跟换行符**‘\n’** 作为行分隔符。编码输出的末尾不存在行分隔符。
StringBuilder originalMimeString = new StringBuilder();
for (int ctr = 0; ctr < 10; ctr++) {
originalMimeString.append(UUID.randomUUID().toString());
}
System.out.println("Original MIME String: " + originalMimeString);
String encodedMime = Base64.getMimeEncoder()
.encodeToString(originalMimeString.toString().getBytes());
System.out.println("Encoded MIME String: " + encodedMime);
byte[] decodedMimeBytes = Base64.getMimeDecoder().decode(encodedMime);
String decodedMime = new String(decodedMimeBytes);
System.out.println("Decoded MIME String: " + decodedMime);
输出
Original MIME String: 46b1778d-d8be-4cb6-9b80-8d439bfd443321d9e6a1-aae2-482e-81e5-742f85e5a1187694bd39-c051-42aa-a990-ae638d8b5bc2fc07cfae-1b82-412f-ba0a-1b7afa88e7882ec0bd15-4d70-45b3-83dc-7ae0b97856c3f2c7400e-b447-4630-bb14-622174091b9fe4e6fdbf-e218-4dcc-8d8b-c65f0f6079584a9eb92e-436e-444b-80f3-89583b96524ccaa48e6c-94c9-4d9d-9b40-676fc488d01d3560a4c4-9e9e-4a0c-a121-d986df398e11
Encoded MIME String: NDZiMTc3OGQtZDhiZS00Y2I2LTliODAtOGQ0MzliZmQ0NDMzMjFkOWU2YTEtYWFlMi00ODJlLTgx
ZTUtNzQyZjg1ZTVhMTE4NzY5NGJkMzktYzA1MS00MmFhLWE5OTAtYWU2MzhkOGI1YmMyZmMwN2Nm
YWUtMWI4Mi00MTJmLWJhMGEtMWI3YWZhODhlNzg4MmVjMGJkMTUtNGQ3MC00NWIzLTgzZGMtN2Fl
MGI5Nzg1NmMzZjJjNzQwMGUtYjQ0Ny00NjMwLWJiMTQtNjIyMTc0MDkxYjlmZTRlNmZkYmYtZTIx
OC00ZGNjLThkOGItYzY1ZjBmNjA3OTU4NGE5ZWI5MmUtNDM2ZS00NDRiLTgwZjMtODk1ODNiOTY1
MjRjY2FhNDhlNmMtOTRjOS00ZDlkLTliNDAtNjc2ZmM0ODhkMDFkMzU2MGE0YzQtOWU5ZS00YTBj
LWExMjEtZDk4NmRmMzk4ZTEx
Decoded MIME String: 46b1778d-d8be-4cb6-9b80-8d439bfd443321d9e6a1-aae2-482e-81e5-742f85e5a1187694bd39-c051-42aa-a990-ae638d8b5bc2fc07cfae-1b82-412f-ba0a-1b7afa88e7882ec0bd15-4d70-45b3-83dc-7ae0b97856c3f2c7400e-b447-4630-bb14-622174091b9fe4e6fdbf-e218-4dcc-8d8b-c65f0f6079584a9eb92e-436e-444b-80f3-89583b96524ccaa48e6c-94c9-4d9d-9b40-676fc488d01d3560a4c4-9e9e-4a0c-a121-d986df398e11
请参阅完整示例。
Base64EncoderDecoder.java
package org.websparrow;
import java.util.Base64;
import java.util.UUID;
public class Base64EncoderDecoder {
public static void main(String[] args) {
System.out.println("============================");
System.out.println("Basic Encoding and Decoding");
System.out.println("============================");
// Basic/ Simple Types
String originalString = "Stay Home Stay Safe";
System.out.println("Original String: " + originalString);
// Basic Encoding
String encodedString = Base64.getEncoder().encodeToString(originalString.getBytes());
System.out.println("Encoded String: " + encodedString);
// Basic Decoding
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
System.out.println("Decoded String: " + decodedString);
System.out.println("\n==================================");
System.out.println("URL/Filename Encoding and Decoding");
System.out.println("==================================");
// URL or Filename types
String originalURL = "https://www.google.com/search?ei=KIyJXtq4KOic4-EP_P-10A0&q=websparrow.org";
System.out.println("Original URL String: " + originalURL);
// URL/Filename Encoding
String encodedURL = Base64.getUrlEncoder().encodeToString(originalURL.getBytes());
System.out.println("Encoded URL String: " + encodedURL);
// URL/Filename Decoding
byte[] decodedURLBytes = Base64.getUrlDecoder().decode(encodedURL);
String decodedURL = new String(decodedURLBytes);
System.out.println("Decoded URL String: " + decodedURL);
System.out.println("\n==========================");
System.out.println("MIME Encoding and Decoding");
System.out.println("==========================");
// MIME types
StringBuilder originalMimeString = new StringBuilder();
for (int ctr = 0; ctr < 10; ctr++) {
originalMimeString.append(UUID.randomUUID().toString());
}
System.out.println("Original MIME String: " + originalMimeString);
// MIME Encoding
String encodedMime = Base64.getMimeEncoder()
.encodeToString(originalMimeString.toString().getBytes());
System.out.println("Encoded MIME String: " + encodedMime);
// MIME Decoding
byte[] decodedMimeBytes = Base64.getMimeDecoder().decode(encodedMime);
String decodedMime = new String(decodedMimeBytes);
System.out.println("Decoded MIME String: " + decodedMime);
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.websparrow.org/java/java-8-base64-encoding-and-decoding-example
内容来源于网络,如有侵权,请联系作者删除!