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 内容传输编码。
该 API 应支持常见的情况,例如在字节数组中编码二进制数据或从输入流读取,以及将字符串解码为字节数组或 ByteBuffer
。
应该检查 JDK 中现有的 Base64 用法和实现,寻找替换并使用新 API 的机会。
测试
此 API 将需要新的单元测试,这些测试将与实现一起开发。新的功能测试也会很有用。
影响
- TCK:将需要新的测试。