java-base64编码和解码
来源:互联网 发布:cad中网络接口怎么画 编辑:程序博客网 时间:2024/05/21 09:10
一、反射/*** * 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包有长度限制,不过具体使用根据情况而定。
阅读全文
0 0
- java base64编码和解码
- java base64编码和解码
- java base64编码和解码
- Java Base64编码和解码
- java base64编码和解码
- java base64编码和解码
- java base64编码和解码
- java-base64编码和解码
- java base64编码和解码
- java base64编码和解码
- java 中使用base64编码和解码:
- java实现base64编码和解码
- base64编码和解码
- BASE64编码和解码
- base64编码和解码
- base64编码和解码
- BASE64 编码和解码
- Base64编码和解码
- 一种将枚举Enum转换为JSON对象的方法
- ROS教程(十):创建ROS消息和ROS服务
- 一位10年Java工作经验的架构师聊Java和工作经验
- MATLAB学习笔记 学习总结归纳(第二周)
- Java8新特性学习
- java-base64编码和解码
- (十)Canvas 的基本使用
- 图片切分小程序和图片重新调整大小兼重命名小程序
- Intellij Idea如何像Eclipse一样的Tab快捷键可以直接跳出括号
- arm64-v8a 百度地图
- BZOJ 4666 小z的胡话
- JS基本类型与无法定义的属性
- 视频录制(一)—mediaRecorder介绍
- Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。文件的删除