文本 | M | a | n | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ASCII編碼 | 77 | 97 | 110 | |||||||||||||||||||||
二進(jìn)制位 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
索引 | 19 | 22 | 5 | 46 | ||||||||||||||||||||
Base64編碼 | T | W | F | u |
所以,Base64編碼會(huì)把3字節(jié)的二進(jìn)制數(shù)據(jù)編碼為4字節(jié)的文本數(shù)據(jù),長(zhǎng)度增加為原來(lái)的4/3。如果要編碼的二進(jìn)制數(shù)據(jù)不是3的倍數(shù),最后會(huì)剩下1個(gè)或2個(gè)字節(jié)怎么辦?此時(shí),需在原數(shù)據(jù)后面添加1個(gè)或2個(gè)零值字節(jié),使其字節(jié)數(shù)是3的倍數(shù)。然后,在編碼后的字符串后面添加1個(gè)或2個(gè)等號(hào)“=”,表示所添加的零值字節(jié)數(shù)。解碼的時(shí)候,會(huì)自動(dòng)去掉。
下面來(lái)看一下Base64編碼的優(yōu)缺點(diǎn)。
優(yōu)點(diǎn):可以將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成可打印字符,方便傳輸數(shù)據(jù);對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的加密,肉眼安全。
缺點(diǎn):內(nèi)容編碼后的體積會(huì)變大,編碼和解碼需要額外的工作量。
它的使用場(chǎng)景有很多,比如將圖片等資源文件以Base64編碼形式直接放于代碼中,使用的時(shí)候反Base64后轉(zhuǎn)換成Image對(duì)象使用;有些文本協(xié)議不支持不可見字符的傳遞,只能轉(zhuǎn)換成可見字符來(lái)傳遞信息。有時(shí)在一些特殊的場(chǎng)合,大多數(shù)消息是純文本的,偶爾需要用這條純文本通道傳一張圖片之類的情況發(fā)生的時(shí)候,就會(huì)用到Base64,比如多功能Internet 郵件擴(kuò)充服務(wù)(MIME)就是用Base64對(duì)郵件的附件進(jìn)行編碼的。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
標(biāo)簽:鹽城 宣城 桂林 東莞 景德鎮(zhèn) 文山 黔南 南昌
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Base64編碼的深入認(rèn)識(shí)與理解》,本文關(guān)鍵詞 Base64,編碼,的,深入,認(rèn)識(shí),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。