栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java实现BASE64编码和解码的方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java实现BASE64编码和解码的方法

base64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输。更具体地说,base64算法主要用于转换二进制数据为ASCII字符串格式。Java语言提供了一个非常好的base64算法的实现,。本文将简要地讲述怎样使用base64以及它是怎样工作的。

base64的作用:主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下就可以了。

第一种方式:
通过反射使用java 中不对外公开的类:

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

 
  public static byte[] decode(final byte[] bytes) { 
    return base64.decodebase64(bytes); 
  } 
 
   
  public static String encode(final byte[] bytes) { 
    return new String(base64.encodebase64(bytes)); 
  } 

 第三种方式:
 

  
  public static String encode(byte[] bstr){  
  return new sun.misc.base64Encoder().encode(bstr);  
  }  
  
    
  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;  
  }  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/148683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号