1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Base64编解码原理

Base64编解码原理

时间:2018-11-06 19:35:05

相关推荐

Base64编解码原理

(1) Base64字符的组成部分

Base64所用字符: 0,1,2 ….9 A,B,C,D…Z a,b,c,d…z + /

对应ASCII: 48,49…58,65,66…90,97,98…122, 43,47

(2) 10个数字,26个大写字母,26个小写字母,1个+,一个 / 刚好64个字符

(3) Base64是将每3个字符转化为4个字符,即(3*8bit=4*6bit),如果文本结尾不足3个

字符,对转化为6为字符后,后面剩余的二进制位可能是2位或者4位(因为是N%6),

余数为0时代表整除了,在剩余二进制位后面补0至6个二进制位,再在结尾加=号,使编

码后的字符满足(N*8+等号个数)/6=base64的字符个数,说白了,如果N*8%6后余2

个二进制位,就补2个=,余4个二进制位就补一个=,整除不补=。

(4) Base64编码对应的字符表

(5) 对字符个数是3的倍数(N*8%6=0)的字符串进行Base64编码

原文: p h p对应ASCII: 01110000 01101000 01110000每6位分割: 011100 000110 100001 110000 |对应10进制值: 286 3348Base64对应的字符:cG hw最后php=cGhw(base64)

(6) 对字符个数为N*8%6=2的字符串进行base64编码

原文: r a n l ASCII值:01110010 01100001 01101110 01101100每6位分割:011100 100110 000101 101110 | 011011 00 0000 xxxxxx xxxxxx |对应10进制值:2838 5 46 27 0 = =对应base64字符: c mF ub A= = 结果: ranl=cmFubA==(base64)

(7) 对字符个数为N*8%6=4的字符串进行base64编码

原文 ha c keASCII值: 01101000 01100001 01100011 01101011 01100101每6位分割: 011010 000110 000101 100011 | 011010 110110 0101 00 xxxxxx |对应10进制值: 26 65 352654 20 =对应base64字符: aGF j a 2 U =结果 hacke=aGFja2U=(base64)

(8) Base64对于中文的不同编码可能会出现不同的结果,具体要看中文用的是什么编码。

(9)总结,看懂了base64的编码过程,当前解码的过程也就明白了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。