Android Base64 編碼/解碼

2018-08-11 14:34 更新

Android Base64 編碼/解碼

Base64編碼說(shuō)明

Base64編碼要求把3個(gè)8位字節(jié)(38=24)轉(zhuǎn)化為4個(gè)6位的字節(jié)(46=24),之后在6位的前面補(bǔ)兩個(gè)0,形成8位一個(gè)字節(jié)的形式。 如果剩下的字符不足3個(gè)字節(jié),則用0填充,輸出字符使用'=',因此編碼后輸出的文本末尾可能會(huì)出現(xiàn)1或2個(gè)'='。

為了保證所輸出的編碼位可讀字符,Base64制定了一個(gè)編碼表,以便進(jìn)行統(tǒng)一轉(zhuǎn)換。編碼表的大小為2^6=64,這也是Base64名稱的由來(lái)。

Base64編碼表

碼值字符
碼值字符
碼值字符
碼值字符
0A16Q32g48w
1B17R33h49x
2C18S34i50y
3D19T35j51z
4E20U36k520
5F21V37l531
6G22W38m542
7H23X39n553
8I24Y40o564
9J25Z41p575
10K26a42q586
11L27b43r597
12M28c44s608
13N29d45t619
14O30e46u62+
15P31f47v63/

用法:

String token = "hello world"; // 編碼前  

String  base64Token = Base64.encodeToString(token.getBytes(), Base64.DEFAULT);//  編碼后

byte[] m = Base64.decode(base64Token,Base64.DEFAULT);// 解碼后

其中第二個(gè)參數(shù):

Base64.flag

  • CRLF 這個(gè)參數(shù)看起來(lái)比較眼熟,它就是Win風(fēng)格的換行符,意思就是使用CR LF這一對(duì)作為一行的結(jié)尾而不是Unix風(fēng)格的LF

  • DEFAULT 這個(gè)參數(shù)是默認(rèn),使用默認(rèn)的方法來(lái)加密

  • NO_PADDING 這個(gè)參數(shù)是略去加密字符串最后的”=”

  • NO_WRAP 這個(gè)參數(shù)意思是略去所有的換行符(設(shè)置后CRLF就沒用了)

  • URL_SAFE 這個(gè)參數(shù)意思是加密時(shí)不使用對(duì)URL和文件名有特殊意義的字符來(lái)作為加密字符,具體就是以-和_取代+和/

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)