abh*_*314 10 java base64 java-8
我目前正在做一个需要 64 位解码的项目,经过一些研究,我在 java 本身中发现了这两种方法,
来自JAVA 8
import java.util.Base64;
byte[] decodedBytes = Base64.getDecoder().decode("encodedUserPassword");
Run Code Online (Sandbox Code Playgroud)
从JAVA 6
import javax.xml.bind.DatatypeConverter;
byte[] decodedBytes = DatatypeConverter.parseBase64Binary("encodedUserPassword");
Run Code Online (Sandbox Code Playgroud)
我想知道的是为什么需要Base64ifDatatypeConverter已经存在?
有不同的表现吗?
Dan*_*dra 10
整个javax.xml.bind模块在Java9 https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html上已弃用(甚至删除)
如果您的项目从 Java8 开始使用,请停止使用该包并使用 Java8 的 Base64 类,以便将来的 Java 升级不会影响它们。
另一方面,如果您必须保持与 Java7 或更早版本的兼容性,则不能使用 Base64(因为它是在 Java8 上引入的)。为此,您应该继续使用 DatatypeConverter 或者更好的另一个独立库来编码/解码 base 64(例如Apache Commons 64)