base 64編碼

base 64簡(jiǎn)介

base64是一種用64個(gè)字符來(lái)表示任意二進(jìn)制數(shù)據(jù)的方法雳攘。

base 64編碼可以將任意一組字節(jié)轉(zhuǎn)換為較長(zhǎng)的常見(jiàn)文本字符序列,從而可以合法地作為首部字段值耀态。base 64編碼將用戶輸入或二進(jìn)制數(shù)據(jù),打包成一種安全格式蝙场,將其作為HTTP首部字段的值發(fā)送出去偷遗,而無(wú)須擔(dān)心其中包含會(huì)破壞HTTP分析程序的冒號(hào)醉拓、換行符或二進(jìn)制值伟姐。

官方文檔地址:RFC3548

base 64編碼過(guò)程

base 64編碼將一個(gè)8位子節(jié)序列拆散為6位的片段,并為每個(gè)6位的片短分配一個(gè)字符亿卤,這個(gè)字符是base 64字母表中的64個(gè)字符之一愤兵。這64個(gè)字符中包括大小寫(xiě)字母、數(shù)字排吴、+和/秆乳,同時(shí)還包括了特殊字符=。具體內(nèi)容如下:

Value Encoding Value Encoding Value Encoding Value Encoding
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v --- ---
14 O 31 f 48 w (pad) = ---
15 P 32 g 49 x --- ---
16 Q 33 h 50 y --- ---

以“Hello!”為例钻哩,他的ASCII對(duì)應(yīng)關(guān)系如下:

hello.jpg

{:width="50%"}

可知 Hello! 的Base64編碼結(jié)果為 SGVsbG8h 屹堰,原始字符串長(zhǎng)度為6個(gè)字符,編碼后長(zhǎng)度為8個(gè)字符街氢,每3個(gè)原始字符經(jīng)Base64編碼成4個(gè)字符扯键,編碼前后長(zhǎng)度比4/3,這個(gè)長(zhǎng)度比很重要 - 比原始字符串長(zhǎng)度短珊肃,則需要使用更大的編碼字符集荣刑,這并不我們想要的;長(zhǎng)度比越大伦乔,則需要傳輸越多的字符厉亏,傳輸時(shí)間越長(zhǎng)。Base64應(yīng)用廣泛的原因是在字符集大小與長(zhǎng)度比之間取得一個(gè)較好的平衡烈和,適用于各種場(chǎng)景爱只。

Base64編碼是每3個(gè)原始字符編碼成4個(gè)字符,如果原始字符串長(zhǎng)度不能被3整除招刹,需要使用0值來(lái)補(bǔ)充原始字符串:

fill.jpg

{:width="50%"}

標(biāo)準(zhǔn)Base64編碼通常用 = 字符來(lái)替換最后的 A虱颗,即編碼結(jié)果為 SGVsbG8hIQ==。因?yàn)?= 字符并不在Base64編碼索引表中蔗喂,其意義在于結(jié)束符號(hào)忘渔,在Base64解碼時(shí)遇到 = 時(shí)即可知道一個(gè)Base64編碼字符串結(jié)束。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缰儿,一起剝皮案震驚了整個(gè)濱河市畦粮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖宣赔,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件预麸,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡儒将,警方通過(guò)查閱死者的電腦和手機(jī)吏祸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)钩蚊,“玉大人贡翘,你說(shuō)我怎么就攤上這事∨槁撸” “怎么了鸣驱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)蝠咆。 經(jīng)常有香客問(wèn)我踊东,道長(zhǎng),這世上最難降的妖魔是什么刚操? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任闸翅,我火速辦了婚禮,結(jié)果婚禮上菊霜,老公的妹妹穿的比我還像新娘坚冀。我一直安慰自己,他們只是感情好占卧,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布遗菠。 她就那樣靜靜地躺著,像睡著了一般华蜒。 火紅的嫁衣襯著肌膚如雪辙纬。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天叭喜,我揣著相機(jī)與錄音贺拣,去河邊找鬼。 笑死捂蕴,一個(gè)胖子當(dāng)著我的面吹牛譬涡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啥辨,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼涡匀,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了溉知?” 一聲冷哼從身側(cè)響起陨瘩,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腕够,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后舌劳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體帚湘,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年甚淡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了大诸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贯卦,死狀恐怖资柔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脸侥,我是刑警寧澤建邓,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布盈厘,位于F島的核電站睁枕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏沸手。R本人自食惡果不足惜外遇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望契吉。 院中可真熱鬧跳仿,春花似錦、人聲如沸捐晶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)惑灵。三九已至山上,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間英支,已是汗流浹背佩憾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留干花,地道東北人妄帘。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像池凄,于是被迫代替她去往敵國(guó)和親抡驼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361