跳到主要内容

JEP 135:Base64 编码和解码

概括

定义用于Base64编码和解码的标准API。

动机

Base64 编码方案经常用于对作为文本数据传输的二进制/八位字节序列进行编码。它通常由使用多用途内部邮件扩展 (MIME)、HTTP 标头、消息摘要等的编码密码的应用程序使用。

JDK 早就应该有一个用于 Base64 编码和解码的标准 API。多年来,开发人员经常要求它,许多人求助于使用 JDK 私有和不受支持的类,例如sun.misc.BASE64Encodersun.misc.BASE64Decoder

JDK 本身有几个内部实现:java.util.prefs.Base64com.sun.org.apache.xml.internal.security.utils.Base64、 和com.sun.net.httpserver.Base64等等。标准 API 将允许这些类型的实现被淘汰。

描述

定义一个简单的 API,可能在 中java.util,用于 Base64 编码和解码。

API 必须明确指定所实现的 Base64 编码方案,可能是RFC 1521指定的 Base64 Content-Transfer-Encoding 。

API 应支持常见情况,例如在字节数组中编码二进制数据或从输入流读取,以及将字符串解码为字节数组或ByteBuffer.

应检查 JDK 中 Base64 的现有用法和实现,寻找替换和使用新 API 的机会。

测试

该 API 将需要与实现一起开发的新单元测试。新的功能测试也很有用。

影响

  • TCK:需要新的测试。