测试Apache Base64和sun公司专有包BASE64Decoder、BASE64Encoder的编解码是否一致的代码:
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);
}
}
测试结论:
Base64的编解码优先使用Apache Base64。
来源:oschina
链接:https://my.oschina.net/u/2619918/blog/667030