• 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.    }    
  • 相关阅读:
    webpack前端构建工具学习总结(一)之webpack安装、创建项目
    NPM、nodeJS安装,grunt自动化构建工具学习总结
    javascript获取childNodes详情,删除空节点
    苹果手机微信上form表单提交的问题
    苹果safari浏览器window.open问题
    微信公众号右上角菜单
    js实现阶乘
    my97DatePicker日期控件——日期输入框联动,使用focus使第二个输入框没展示出日期控件
    事件绑定和普通事件的区别
    Java单例模式的例子
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7574026.html
Copyright © 2020-2023  润新知