Android Base64 编码/解码

最后更新于:2022-04-01 19:47:37

### Base64编码说明 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用'=',因此编码后输出的文本末尾可能会出现1或2个'='。 为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。 ### 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);// 解码后 ~~~ 其中第二个参数: Base64.flag - CRLF 这个参数看起来比较眼熟,它就是Win风格的换行符,意思就是使用CR LF这一对作为一行的结尾而不是Unix风格的LF - DEFAULT 这个参数是默认,使用默认的方法来加密 - NO_PADDING 这个参数是略去加密字符串最后的”=” - NO_WRAP 这个参数意思是略去所有的换行符(设置后CRLF就没用了) - URL_SAFE 这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/
';