• 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.    }    
  • 相关阅读:
    2021.02.09 【ABAP随笔】-Excel高效输出工具-xlsx workbench-输出多个Sheet
    2021.02.07 【ABAP随笔】-Excel高效输出工具-xlsx workbench
    Thrift did not exit cleanly
    Docker部署Springboot项目,Invalid or corrupt jarfile /app.jar
    为jenkins设置nginx作为反向代理
    Jenkins安装报错 No valid crumb was included in request
    判断当前设备是ios还是安卓
    vue 路由跳转四种方式 (带参数)
    Vue table的column属性,render函数生成switch开关和button按钮
    H5页面自定义 pxTorem 函数进行单位转换
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7574026.html
Copyright © 2020-2023  润新知