经过研究,我目前正在一个需要64位解码的项目中,我在Java本身中发现了这两种方法,
从JAVA 8
import java.util.Base64;
byte[] decodedBytes = Base64.getDecoder().decode(encodedUserPassword);
来自JAVA 6
import javax.xml.bind.DatatypeConverter;
byte[] decodedBytes = DatatypeConverter.parseBase64Binary(encodedUserPassword);
我想知道的是,为什么需要Base64
如果DatatypeConverter
已经存在?有其他不同的表现方式吗?
在Java9 https://docs.oracle.com/javase/9/docs/api/java.xml.bind-summary.html上,整个javax.xml.bind模块已被弃用(甚至删除)。
如果您的项目使用的是Java8以后的版本,请停止使用该程序包,而改用Java8的Base64类,这样以后的Java升级将不会对其产生影响。
另一方面,如果必须保持与Java7或更早版本的兼容性,则不能使用Base64(因为它是Java8上引入的)。为此,您应该继续使用DatatypeConverter,或者更好的是,使用另一个独立的库在base 64中进行编码/解码(例如Apache Commons 64)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句