一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術(shù)|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java實(shí)現(xiàn)BASE64編碼和解碼的方法

Java實(shí)現(xiàn)BASE64編碼和解碼的方法

2020-07-04 10:39hw1287789687 JAVA教程

本篇文章主要介紹了Java實(shí)現(xiàn)BASE64編碼和解碼的方法,BASE64編碼通常用于轉(zhuǎn)換二進(jìn)制數(shù)據(jù)為文本數(shù)據(jù),有需要的可以了解一下。

BASE64和其他相似的編碼算法通常用于轉(zhuǎn)換二進(jìn)制數(shù)據(jù)為文本數(shù)據(jù),其目的是為了簡(jiǎn)化存儲(chǔ)或傳輸。更具體地說(shuō),BASE64算法主要用于轉(zhuǎn)換二進(jìn)制數(shù)據(jù)為ASCII字符串格式。Java語(yǔ)言提供了一個(gè)非常好的BASE64算法的實(shí)現(xiàn),。本文將簡(jiǎn)要地講述怎樣使用BASE64以及它是怎樣工作的。

Base64的作用:主要不是加密,它主要的用途是把一些二進(jìn)制數(shù)轉(zhuǎn)成普通字符用于網(wǎng)絡(luò)傳輸。由于一些二進(jìn)制字符在傳輸協(xié)議中屬于控制字符,不能直接傳送需要轉(zhuǎn)換一下就可以了。

第一種方式:
通過(guò)反射使用java 中不對(duì)外公開(kāi)的類(lèi):

?
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);
  }
 
  /**
   * 二進(jìn)制數(shù)據(jù)編碼為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; 
  

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 暖暖的韩国免费观看 | 欧洲男同直粗无套播放视频 | 太紧太深了受不了黑人 | 二次元美女脱裤子让男人桶爽 | 亚洲日日操 | 2019国内自拍| 成人高清视频在线观看 | 狠狠色狠狠色综合系列 | 青青草精品 | 四虎网址大全 | 色在线影院 | 处女摘花视频 | 亚洲高清一区二区三区久久 | 成年视频在线播放 | 关晓彤一级做a爰片性色毛片 | 欧美人在线一区二区三区 | 色吧五月婷婷 | 免费亚洲视频在线观看 | 91普通话国产对白在线 | 久久久影院亚洲精品 | 无遮18禁在线永久免费观看挡 | 嫩草视频在线观看免费 | 扒开大腿狠狠挺进视频 | 无遮无挡免费视频 | 日本黄色高清视频网站 | 免费观看一级一片 | 色视频亚洲 | 日韩无砖2021特黄 | 调教女高中生第3部分 | 香蕉久久高清国产精品免费 | caoporm碰最新免费公开视频 | 国产成人亚洲影视在线 | 美女福利视频一区二区 | 午夜影院一区二区三区 | 亚洲高清国产拍精品影院 | 嗯啊在线观看免费影院 | 色天天综合色天天碰 | 亚洲欧美在线免费 | 亚洲国产精品久久网午夜 | 爽好大快深点一视频 | 亚洲色图欧美视频 |