天天看點

Java實作BASE64編解碼Java實作BASE64編解碼

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/17027535

Java實作BASE64編解碼

作者:chszs,轉載需注明。部落格首頁:

http://blog.csdn.net/chszs

BASE64和其他相似的編碼算法通常用于轉換二進制資料為文本資料,其目的是為了簡化存儲或傳輸。更具體地說,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
           

注意:字元串最後加上了“=”,其意思表示字元串編碼的結束。