一、反射
/***
* encode by Base64
*/
public static String encodeBase64(byte[]input) throws Exception{
Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
Method mainMethod= clazz.getMethod("encode", byte[].class);
mainMethod.setAccessible(true);
Object retObj=mainMethod.invoke(null, new Object[]{input});
return (String)retObj;
}
/***
* decode by Base64
*/
public static byte[] decodeBase64(String input) throws Exception{
Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
Method mainMethod= clazz.getMethod("decode", String.class);
mainMethod.setAccessible(true);
Object retObj=mainMethod.invoke(null, input);
return (byte[])retObj;
}
  二、使用commons-codec.jar
/**
* @param bytes
* @return
*/
public static byte[] decode(final byte[] bytes) {
return Base64.decodeBase64(bytes);
} /**
* 二进制数据编码为BASE64字符串
*
* @param bytes
* @return
* @throws Exception
*/
public static String encode(final byte[] bytes) {
return new String(Base64.encodeBase64(bytes));
}
三、
/**
* 编码
* @param bstr
* @return String
*/
public static String encode(byte[] bstr){
return new sun.misc.BASE64Encoder().encode(bstr);
} /**
* 解码
* @param str
* @return string
*/
public static byte[] decode(String str){
byte[] bt = null;
try {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
bt = decoder.decodeBuffer( str );
} catch (IOException e) {
e.printStackTrace();
} return bt;
}

推荐第二种,比较好用些。sun包有长度限制,不过具体使用根据情况而定。

最新文章

  1. 【原】IOS合并lib(.a)库的终极可用方法(可用于解决duplicate symbol静态库冲突)
  2. 关于CAShapeLayer的一些实用案例和技巧【转】
  3. Java语言的安全性的体现
  4. bootstrap学习<三>打开模态窗体
  5. [家里蹲大学数学杂志]第041期中山大学数计学院 2008 级数学与应用数学专业《泛函分析》期末考试试题 A
  6. Atitit..文件上传组件选型and最佳实践总结(2)----断点续传
  7. IOS学习3
  8. 使用python通过SSH登陆linux并操作
  9. 在MVC中动态读取JSON数据创建表格
  10. SQL优化 csdn
  11. Ajax+PHP简单入门教程
  12. bookhub -- 扁平化本地电子书管理与分享工具
  13. Linux 内核 链表 的简单模拟(2)
  14. Django关于filter和get()方法
  15. java二进制文件复制
  16. php中 xml json 数组 之间相互转换
  17. iOS 开发者旅途中的指南针 - LLDB 调试技术
  18. C#图像处理——ImageProcessor
  19. 工程经验总结之吹水"管理大境界"
  20. Java应用服务器Resin

热门文章

  1. 日志处理之logging模块
  2. HTML5 的web储存: localStorage & sessionStorage
  3. Net分布式系统之二:CentOS系统搭建Nginx负载均衡
  4. 三表联查,这是我目前写过的最长的sql语句,嗯嗯,果然遇到问题才能让我更快成长,更复杂的语句也有了一些心得了
  5. java基础快捷键(1)
  6. spring 异常记录
  7. selenium--环境搭建步骤
  8. vs快捷方式
  9. 利用JDK(1.6及以上版本)创建WebService
  10. java : 包装类 缓冲机制的使用(转载)