Base64是一種把二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成文本表示形式的方法,其基于64個(gè)可打印字符對(duì)數(shù)據(jù)進(jìn)行編解碼。
Base64提供了二進(jìn)制數(shù)據(jù)到文本數(shù)據(jù)轉(zhuǎn)換的一種方法,因此利用Base64可以實(shí)現(xiàn)二進(jìn)制數(shù)據(jù)與基于文本的系統(tǒng)之間的交互。Base64在包括email,browser在內(nèi)的許多應(yīng)用程序里得到應(yīng)用。
Base64顧名思義是根據(jù)64個(gè)基本字符來(lái)對(duì)數(shù)據(jù)進(jìn)行編碼,包括a-z,A-Z,0-9共62個(gè)字符和其它另外2個(gè)字符。62個(gè)字母數(shù)字表里的字符是固定的,而其它2個(gè)字符根據(jù)具體的Base64的變種而不同。
2^6 = 64故表示64個(gè)編碼字符一共需要6bit。
3 * 8 = 24 = 4 * 6故每3個(gè)字節(jié)(byte)可以用4個(gè)Base64字符編碼,編碼時(shí)按照Base64編碼表,對(duì)源數(shù)據(jù)進(jìn)行編碼,每3個(gè)字節(jié)轉(zhuǎn)換成4個(gè)Base64編碼字符,解碼時(shí)則反之。可見(jiàn)在沒(méi)有其他影響因素的情況下,編碼前后數(shù)據(jù)大小的比例為3 : 4,編碼后的數(shù)據(jù)略大于源數(shù)據(jù)。
如果編碼內(nèi)容尾部不足3個(gè)字節(jié),可以用”=”填補(bǔ)編碼結(jié)果以表示尾部包含2個(gè)字節(jié)數(shù)據(jù),用“==”填補(bǔ)編碼結(jié)果表示尾部包含1個(gè)字節(jié)數(shù)據(jù)。尾部不足3個(gè)字節(jié)時(shí)的填補(bǔ)行為就像是64個(gè)字符中的2個(gè)特別字符一樣,也是隨Base64的變種而變化的,在一些Base64的變種中,“=”不是必須的。
Base64除了可以完成二數(shù)進(jìn)制數(shù)據(jù)到文本數(shù)據(jù)的轉(zhuǎn)換,其實(shí)也可以對(duì)文本數(shù)據(jù)進(jìn)行編碼,而不是僅限于編碼二進(jìn)制數(shù)據(jù)。
Hello World!經(jīng)過(guò)Base64轉(zhuǎn)換后將得到輸出
SGVsbG8gV29ybGQh新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注