gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java实现BASE64编码和解码的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/***
    * 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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
    * @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));
   }

 第三种方式:   。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
   * 编码
   * @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; 
  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

最后此篇关于Java实现BASE64编码和解码的方法的文章就讲到这里了,如果你想了解更多关于Java实现BASE64编码和解码的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com