java - 哪个Java库提供base64编码/解码?

标签 java

我想知道使用哪个库进行 Base64 编码/解码?我需要此功能足够稳定以供生产使用。

最佳答案

Java 9

使用 Java 8 解决方案。注意 DatatypeConverter 仍然可以使用,但它现在位于需要包含的 java.xml.bind 模块中。

module org.example.foo {
    requires java.xml.bind;
}

Java 8

Java 8 现在提供 java.util.Base64用于编码和解码base64。

编码

byte[] message = "hello world".getBytes(StandardCharsets.UTF_8);
String encoded = Base64.getEncoder().encodeToString(message);
System.out.println(encoded);
// => aGVsbG8gd29ybGQ=

解码

byte[] decoded = Base64.getDecoder().decode("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, StandardCharsets.UTF_8));
// => hello world

Java 6 和 7

自 Java 6 以来鲜为人知的类 javax.xml.bind.DatatypeConverter可以使用。这是 JRE 的一部分,不需要额外的库。

编码

byte[] message = "hello world".getBytes("UTF-8");
String encoded = DatatypeConverter.printBase64Binary(message);
System.out.println(encoded);
// => aGVsbG8gd29ybGQ=  

解码

byte[] decoded = DatatypeConverter.parseBase64Binary("aGVsbG8gd29ybGQ=");
System.out.println(new String(decoded, "UTF-8"));
// => hello world

关于java - 哪个Java库提供base64编码/解码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61480064/

相关文章:

java - <html :errors> struts tutorial or example

java - 如何在android中发送短信

javascript - 如何为我的应用程序设置改造?

java - 在方法体内处理注解

java - IntelliJ "result of inputstream.read is ignored"- 如何修复?

java - 在 Activity JRE 中找不到 "tools.jar'

java - 来自 Javascript 的图像 src 放置在同一个 Java 包中

java - 如何使用反射检查 hibernate 映射?

java - 进行 O/R 映射时的命名约定

java - 如何将 ImageIcon 设置为 JButton 并根据按钮的大小调整图片大小?