测试Apache Base64和sun公司专有包BASE64Decoder、BASE64Encoder的编解码是否一致的代码:java
import java.util.Arrays; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * Base64 测试 * * @author Kevin * @date 2016-04-27 */ public class Base64Test { public static void main(String[] args) throws Exception { String base64DataStr = "+/whuang123FDKASLJFLDSA+/IJFIDSAFKLD"; String apacheBase64Data = Base64.encodeBase64String(base64DataStr.getBytes("UTF-8")); String sunBase64Data = new BASE64Encoder().encode(base64DataStr.getBytes("UTF-8")); // 测试Apache Base64的编码和sun公司专有包BASE64Encoder的编码是否一致 boolean isEqualsStr = apacheBase64Data.equals(sunBase64Data); // 结果为true System.out.println(isEqualsStr); byte[] apacheBase64Result = Base64.decodeBase64(apacheBase64Data); BASE64Decoder decoder = new BASE64Decoder(); byte[] sunBase64DecoderResult = decoder.decodeBuffer(sunBase64Data); // 测试Apache Base64的解码和sun公司专有包BASE64Decoder的解码是否一致 boolean isEquals = Arrays.equals(apacheBase64Result,sunBase64DecoderResult); // 结果为true System.out.println(isEquals); } }
测试结论:apache
Base64的编解码优先使用Apache Base64。测试