博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java base64编码和解码
阅读量:5297 次
发布时间:2019-06-14

本文共 1546 字,大约阅读时间需要 5 分钟。

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.    }    

转载于:https://www.cnblogs.com/ceshi2016/p/7574026.html

你可能感兴趣的文章
面试题2
查看>>
selenium+java iframe定位
查看>>
P2P综述
查看>>
第五章 如何使用Burp Target
查看>>
Sprint阶段测试评分总结
查看>>
sqlite3经常使用命令&语法
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>
安卓当中的线程和每秒刷一次
查看>>
MySQL Proxy
查看>>
随机颜色值
查看>>
每日一库:Modernizr.js,es5-shim.js,es5-safe.js
查看>>
目录相关的操作
查看>>
C++----练习--引用头文件
查看>>
ajax连接服务器框架
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
利用maven管理项目之POM文件配置
查看>>
FUSE-用户空间文件系统
查看>>
 VS2012 C#调用C++ dll
查看>>