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.    }    
  • 相关阅读:
    echarts如何设置背景图的颜色
    小程序获取的用户头像怎么做成圆形
    小程序源码丢失了怎么在微信平台反编译找回
    微信小程序弹框提示绑定手环实例
    微信小程序仿微信运动步数排行-交互
    微信小程序简单常见首页demo
    微信小程序实现tab页面切换功能
    微信小程序实现一个简单的表格
    2018年各大互联网前端面试题三(阿里)
    java和c/c++
  • 原文地址:https://www.cnblogs.com/ceshi2016/p/7574026.html
Copyright © 2011-2022 走看看