1. base64字元的組成部分
base64所用字元: 0,1,2 ….9 a,b,c,d…z a,b,c,d…z + /2. 10個數字,26個大寫字母,26個小寫字母,1個+,乙個 / 剛好64個字元對應ascii: 48,49…58,65,66…90,97,98…122, 43,47
3. base64是將每3個字元轉化為4個字元,即(3*8bit=4*6bit),如果文字結尾不足3個字元,後面剩餘的二進位制位可能是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進製值: 28 6 33 48
base64對應的字元:c g h w
最後php=cghw(base64)
6. 對字元個數為n*8%6=2的字串進行base64編碼原文: r a n l
ascii值:01110010
01100001
01101110
01101100
每6位分割:011100
100110
000101
101110 | 011011
000000 ****** ****** |
對應10進製值:28385
4627
0 = =
對應base64字元: c m f u b a = =
結果: ranl=cmfuba==(base64)
7. 對字元個數為n*8%6=4的字串進行base64編碼原文 h a c k e
ascii值: 01101000
01100001
01100011
01101011
01100101
每6位分割: 011010
000110
000101
100011 | 011010
110110
0101
00 ****** |
對應10進製值: 2665
3526
5420 =
對應base64字元: a g f j a
2 u =
結果 hacke=agfja2u=(base64)
8. base64對於中文的不同編碼可能會出現不同的結果,具體要看中文用的是什麼編碼。
9. 總結,看懂了base64的編碼過程,當前解碼的過程也就明白了,在這兒我就不多講了
Base64編碼解碼原理
一.base64編碼由來 為什麼會有base64編碼呢?因為有些網路傳送渠道並不支援所有的位元組,例如傳統的郵件只支援可見字元的傳送,像ascii碼的控制字元就不能通過郵件傳送。這樣用途就受到了很大的限制,比如二進位製流的每個位元組不可能全部是可見字元,所以就傳送不了。最好的方法就是在不改變傳統協議...
Base64編碼與解碼原理
base64編碼是使用64個可列印ascii字元 a z a z 0 9 將任意位元組序列資料編碼成ascii字串,另有 符號用作字尾用途。base64編碼與解碼的基礎索引表如下 1 base64編碼過程 base64將輸入字串按位元組切分,取得每個位元組對應的二進位制值 若不足8位元則高位補0 然...
base64編碼 解碼
ps base64是一種資料編碼方式,目的是讓資料符合傳輸協議的要求,有些人誤用它進行資料加密 base64編碼 nsstring base64encodedstringwithstring nsstring string base64解碼 nsstring base64decodedstringw...