现在的位置: 首页 > 综合 > 正文

Byte[]和BASE64之间的转换

2011年01月20日 ⁄ 综合 ⁄ 共 584字 ⁄ 字号 评论关闭

一、  BASE64编码

byte[]中的元素当做无符号八位整数转换成只含有64个基本字符的字符串,这些基本字符是:

l         大写的A-Z

l         小写的a-z

l         数字0-9

l         '+' '/'

 

64个字符构成BASE64的字符集。‘=’,为填充字符,结尾处可以填充0-2个填充字符

 

Base64是将原文按照每 3 个字节一组分开,这个 3 字节组中的每一组将被按照位分解成 4 个部分,每个部分 6 个位,在这 4 个部分的每个部分高位加上 2 0构成一个新的 4 字节组,新的字节组中,每个字节只有 6 位,能表示64个值。

在原文在转换为BASE64编码时,试是以3个字节为一组转换成4字节一组的BASE64编码。如果原文不是三字节的倍数,可能多出一个字节和两个字节,分别会被转为2字节和3字节的BASE64编码,这时编码系统应该在形成的BASE64编码最后添加上填充符=,保证BASE64编码长度是4的倍数。所以在BASE64编码后添加的填充符=可能为0-2个。

BASE64编码对照表如下:

Value

Encoding

Value

Encoding

Value

Encoding

Value

Encoding

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

抱歉!评论已关闭.