base64編碼原理 2019-03-08

1.base64編碼對照表標(biāo)準(zhǔn)如下:


base64編碼表

2.base64 編碼原理:

ps:? 1字節(jié)byte = 8bit位? -> 一字節(jié)可存儲(chǔ)一個(gè)漢字,兩個(gè)英文字母。


base64編碼一共64個(gè)字符,可以用6個(gè)bit位(2^6 = 64)表示出來,一字節(jié)由8個(gè)bit位,多余兩位用0填充。(注:一個(gè)base64字符仍有8個(gè)bit位,有效部分為右六位)。

Base64編碼時(shí),是將3個(gè)字節(jié)轉(zhuǎn)變?yōu)?個(gè)字節(jié),最終得到的字節(jié)數(shù)必然是4的倍數(shù)。

接下來我們通過實(shí)例來分析:(將字符csf轉(zhuǎn)換成base64編碼

①字符轉(zhuǎn)ASCII碼(ASCII碼對照表見附圖)

c=>99, s=>115, f=>102

附圖 ASCII編碼對照表

②ASCII碼轉(zhuǎn)成二進(jìn)制

99=>0110?0011,115=>0111?0011,102=>0110?0110

③三個(gè)字節(jié)(3x8=24bit位)轉(zhuǎn)成四個(gè)字節(jié)(4x6=24bit位),并在每個(gè)6bit位前補(bǔ)兩個(gè)0,重新變成8bit位的字節(jié)

轉(zhuǎn)換結(jié)果:011000? ?110111? ?001101? ?100110

補(bǔ)零:--->?00011000? ??00110111? ??00001101? ??00100110

④將補(bǔ)零后的結(jié)果轉(zhuǎn)換成十進(jìn)制

00011000 => 2^4+2^3 = 24

00110111 => 55

00001101 =>13

00100110 =>38

⑤對照上方的base64編碼表

得到結(jié)果為:Y3Nm

ps:值得注意的是,base64編碼過程最后可能碰到不足三位的情況,這種情況在轉(zhuǎn)化成6位時(shí)用0補(bǔ)位,轉(zhuǎn)換后若六位全為‘空’,則轉(zhuǎn)換結(jié)果用=號(hào)代替。如下圖:

M編碼結(jié)果為TQ==


同理 ,字符L(ASCII碼為76)轉(zhuǎn)換結(jié)果為TA==。


以上純屬個(gè)人理解。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 字符是用戶可以讀寫的最小單位。計(jì)算機(jī)所能支持的字符組成的集合,就叫做字符集。字符集通常以二維表的形式存在。二維表的...
    劉惜有閱讀 8,366評論 2 14
  • 每個(gè)文本編輯器都有默認(rèn)的編碼方式(比如 UTF-8 編碼),當(dāng)我們保存文檔的時(shí)候,可以選擇編碼方式,如果沒有特意選...
    _于曼麗_閱讀 1,796評論 0 1
  • 隨著中韓交流的進(jìn)一步深入,國內(nèi)的韓國語學(xué)習(xí)者大增。那么,對于初學(xué)者來說,如何迅速入門,并且掌握韓國語呢?在這里,向...
    檸檬最萌丫閱讀 347評論 0 0
  • 本人94年銷售工作兩年,現(xiàn)如今因領(lǐng)導(dǎo)穿小鞋被迫下崗,謀求新的出路。 以前家里做生意,最后欠了不少錢,就像你們可以想...
    飛翔的喬治閱讀 269評論 0 0
  • 王勃在《滕王閣序》中賦予秋“落霞與孤鶩齊飛,秋水共長天一色”的不羈;李煜在《相見歡》中則給予秋“寂寞梧桐深院鎖清秋...
    咿呀囈語閱讀 406評論 8 2

友情鏈接更多精彩內(nèi)容