java base64编码和解码

base64base编码解码base64编码 

java 中使用base64编码和解码:

 

第一种方式:

通过反射使用java 中不对外公开的类:

Java代码  

1. /*** 

2.      * encode by Base64 

3.      */  

4.     public static String encodeBase64(byte[]input) throws Exception{  

5.         Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");  

6.         Method mainMethod= clazz.getMethod("encode"byte[].class);  

7.         mainMethod.setAccessible(true);  

8.          Object retObj=mainMethod.invoke(nullnew Object[]{input});  

9.          return (String)retObj;  

10.    }  

11.    /*** 

12.     * decode by Base64 

13.     */  

14.    public static byte[] decodeBase64(String input) throws Exception{  

15.        Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");  

16.        Method mainMethod= clazz.getMethod("decode", String.class);  

17.        mainMethod.setAccessible(true);  

18.         Object retObj=mainMethod.invoke(null, input);  

19.         return (byte[])retObj;  

20.    }  

 

第二种方式:

使用commons-codec.jar

Java代码  

1. /** 

2.      * @param bytes 

3.      * @return 

4.      */  

5.     public static byte[] decode(final byte[] bytes) {  

6.         return Base64.decodeBase64(bytes);  

7.     }  

8.   

9.     /** 

10.     * 二进制数据编码为BASE64字符串 

11.     * 

12.     * @param bytes 

13.     * @return 

14.     * @throws Exception 

15.     */  

16.    public static String encode(final byte[] bytes) {  

17.        return new String(Base64.encodeBase64(bytes));  

18.    }  

 

第三种方式:

Java代码  

1. /**  

2.     * 编码  

3.     * @param bstr  

4.     * @return String  

5.     */    

6.    public static String encode(byte[] bstr){    

7.    return new sun.misc.BASE64Encoder().encode(bstr);    

8.    }    

9.    

10.   /**  

11.    * 解码  

12.    * @param str  

13.    * @return string  

14.    */    

15.   public static byte[] decode(String str){    

16.   byte[] bt = null;    

17.   try {    

18.       sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();    

19.       bt = decoder.decodeBuffer( str );    

20.   } catch (IOException e) {    

21.       e.printStackTrace();    

22.   }    

23.   

24.       return bt;    

25.   }    

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值