轉載至:http://hw1287789687.iteye.com/blog/1910853
java 中使用base64編碼和解碼:
第一種方式:
通過反射使用java 中不對外公開的類:

/***
* encode by Base64
*/
public static String encodeBase64(byte[]input) throws Exception{
Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
Method mainMethod= clazz.getMethod("encode", byte[].class);
mainMethod.setAccessible(true);
Object retObj=mainMethod.invoke(null, new Object[]{input});
return (String)retObj;
}
/***
* decode by Base64
public static byte[] decodeBase64(String input) throws Exception{
Method mainMethod= clazz.getMethod("decode", String.class);
Object retObj=mainMethod.invoke(null, input);
return (byte[])retObj;
第二種方式:
使用commons-codec.jar

/**
* @param bytes
* @return
public static byte[] decode(final byte[] bytes) {
return Base64.decodeBase64(bytes);
/**
* 二進制資料編碼為BASE64字元串
*
* @throws Exception
public static String encode(final byte[] bytes) {
return new String(Base64.encodeBase64(bytes));
第三種方式:

/**
* 編碼
* @param bstr
* @return String
*/
public static String encode(byte[] bstr){
return new sun.misc.BASE64Encoder().encode(bstr);
}
/**
* 解碼
* @param str
* @return string
public static byte[] decode(String str){
byte[] bt = null;
try {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
bt = decoder.decodeBuffer( str );
} catch (IOException e) {
e.printStackTrace();
return bt;
本文轉自建波李 51CTO部落格,原文連結:http://blog.51cto.com/jianboli/1889690,如需轉載請自行聯系原作者