Android Base64 编码/解码

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编码表

码值 字符
码值 字符
码值 字符
码值 字符
0 A 16 Q 32 g 48 w
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /


用法:

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和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/




猜你喜欢

转载自blog.csdn.net/u012964281/article/details/40431391