zoukankan      html  css  js  c++  java
  • java 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(null, new 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.    }    
  • 相关阅读:
    常见算法:C语言求最小公倍数和最大公约数三种算法
    java数据结构
    创建与删除索引
    Delphi 2007体验!
    wxWindows
    Android中WebView的相关使用
    IAR FOR ARM 各版本号,须要的大家能够收藏了
    [AngularJS] $interval
    [ES6] 10. Array Comprehensions
    [ES6] 09. Destructuring Assignment -- 2
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7574026.html
Copyright © 2011-2022 走看看