package com.dream.util;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import junit.framework.TestCase;
/**
* @author zxg
* base64算法 算法公开
* base64可以充当加解密算法,不过容易破解
* 就是替代 ascii码的算法
*/
public class Base64Test extends TestCase {
private static final String STR = "zxg is a boy";
/**
* 利用jdk
*/
public void testjdkBase() throws Exception {
BASE64Encoder encode = new BASE64Encoder();
System.out.println(encode.encode(STR.getBytes()));
String str = encode.encode(STR.getBytes());
BASE64Decoder decode = new BASE64Decoder();
byte[] de = decode.decodeBuffer(new String(str.getBytes()));
System.out.println(new String(de));
}
/**
* 利用apache commons codec 第三方扩展
*/
public void testApacheBase() throws Exception {
byte[] encodebytes = Base64.encodeBase64(STR.getBytes());
System.out.println(new String(encodebytes));
byte[] decodebytes = Base64.decodeBase64(encodebytes);
System.out.println(new String(decodebytes));
}
/**
* 利用 bouncy castle 第三方扩展
*/
public void testbcBase() throws Exception {
byte[] encodebytes = org.bouncycastle.util.encoders.Base64.encode(STR
.getBytes());
System.out.println(new String(encodebytes));
byte[] decodebytes = org.bouncycastle.util.encoders.Base64.decode(encodebytes);
System.out.println(new String(decodebytes));
}
}