JEP 135:Base64 编码和解码
概括
定义用于Base64编码和解码的标准API。
动机
Base64 编码方案经常用于对作为文本数据传输的二进制/八位字节序列进行编码。它通常由使用多用途内部邮件扩展 (MIME)、HTTP 标头、消息摘要等的编码密码的应用程序使用。
JDK 早就应该有一个用于 Base64 编码和解码的标准 API。多年来,开发人员经常要求它,许多人求助于使用 JDK 私有和不受支持的类,例如sun.misc.BASE64Encoder
和sun.misc.BASE64Decoder
。
JDK 本身有几个内部实现:java.util.prefs.Base64
、com.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:需要新的测试。