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