版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/17027535
Java實作BASE64編解碼
作者:chszs,轉載需注明。部落格首頁:
http://blog.csdn.net/chszsBASE64和其他相似的編碼算法通常用于轉換二進制資料為文本資料,其目的是為了簡化存儲或傳輸。更具體地說,BASE64算法主要用于轉換二進制資料為ASCII字元串格式。Java語言提供了一個非常好的BASE64算法的實作,即Apache Commons Codec工具包。本文将簡要地講述怎樣使用BASE64以及它是怎樣工作的。
下面我們用BASE64對字元串進行編碼:
import java.io.UnsupportedEncodingException;
import org.apache.commons.codec.binary.Base64;
public class Base64Test {
public static void main(String[] args){
String str = "Hello World";
try{
byte[] encodeBase64 = Base64.encodeBase64(str.getBytes("UTF-8"));
System.out.println("RESULT: " + new String(encodeBase64));
} catch(UnsupportedEncodingException e){
e.printStackTrace();
}
}
}
輸出結果為:
RESULT: SGVsbG8gV29ybGQ=
上面輸出的字元串是“Hello world”字元串的8位二進制值被連接配接在一起,然後以6位分組。随後每個組都被轉換成一個單獨的數字并映射到Base64的索引。
binary dec Base64
010010 18 S
000110 6 G
010101 21 V
101100 44 s
011011 27 b
000110 6 G
111100 60 8
100000 32 g
010101 29 d
110110 54 2
111101 61 9
110010 50 y
011011 27 b
000110 6 G
010000 16 Q
注意:字元串最後加上了“=”,其意思表示字元串編碼的結束。