关于Base64 编解码的使用方法
来源:互联网 发布:php 16进制转字符串 编辑:程序博客网 时间:2024/06/01 10:34
java 中使用base64编码和解码:
第一种方式:
通过反射使用java 中不对外公开的类:
- /***
- * 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;
- }
0 0
- 关于Base64 编解码的使用方法
- 关于base64字符编解码
- Base64的编解码方法
- 图片的base64编解码
- base64的编解码问题
- base64编解码的类
- base64的编解码函数
- ASP用于BASE64的编解码
- 一个高效的Base64编解码算法
- Base64编解码的C++实现
- base64 编解码的 Java 实现
- 找到的 base64编解码实现
- ios 字符串的base64编解码
- 一个高效的Base64编解码算法
- Base64 编解码的C语言实现
- Base64编解码的C语言实现
- JAVA 自定义的base64编解码
- apple IOS的base64编解码
- 关于开启不保留活动后引发RestoreInstanceState容易崩溃的问题小记
- 关于redis和memcache的使用选择
- Tomcat相关参数调整(windows)
- TabLayout+ViewPager 设置icon
- Android布局之layout_gravity属性
- 关于Base64 编解码的使用方法
- 采访MichaelBolton ----阅读他对于即将成为测试人员有关如何成功的建议
- Arcgis 10.3安装问题以及添加python的包
- IOS之UI--动态设置NavigationBar的颜色以及透明度
- 总结七条助你成为Linux高手的超棒忠告
- 企业轻松组建虚拟局域网——蒲公英Cloud VPN技术
- class的装载
- tomcat 数据库连接池
- 外观模式(Facade)