337p人体粉嫩胞高清图片,97人妻精品一区二区三区在线 ,日本少妇自慰免费完整版,99精品国产福久久久久久,久久精品国产亚洲av热一区,国产aaaaaa一级毛片,国产99久久九九精品无码,久久精品国产亚洲AV成人公司
網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

谷歌把3字節(jié)變成4字符的算法,程序員用了30年還沒換

0
分享至


Base64編碼每天在互聯(lián)網(wǎng)上傳輸數(shù)十億次,卻極少有人停下來(lái)問(wèn):為什么偏偏是64個(gè)字符?為什么3字節(jié)非要拆成4個(gè)字符?這個(gè)1978年誕生的算法,至今仍在你的JWT令牌、郵件附件、CSS內(nèi)嵌圖片里默默運(yùn)轉(zhuǎn)。

本文用一組具體數(shù)字拆解它的工作原理,以及開發(fā)者最常踩的5個(gè)坑。

從24比特到4個(gè)字符:一個(gè)刻意的設(shè)計(jì)

Base64的核心操作極其機(jī)械:每3字節(jié)(24比特)輸入,切成4個(gè)6比特組,每組映射到64個(gè)可打印字符之一。64個(gè)字符剛好是A-Z、a-z、0-9,加上+和/,再用=做補(bǔ)位填充。

這個(gè)設(shè)計(jì)的代價(jià)很明確:編碼后體積膨脹33%。3字節(jié)變4字符,沒有壓縮,沒有加密,只是為了讓二進(jìn)制數(shù)據(jù)能安全穿過(guò)只認(rèn)文本的系統(tǒng)——1980年代的電子郵件、HTTP頭、URL參數(shù)、JSON字段。

輸入"Man"的完整過(guò)程:二進(jìn)制是01001101 01100001 01101110,切成010011、010110、000101、101110四組,對(duì)應(yīng)Base64字符T、W、F、u。沒有魔法,只有位運(yùn)算。


5個(gè)真實(shí)使用場(chǎng)景,以及它們的隱藏成本

場(chǎng)景一:HTML/CSS內(nèi)嵌圖片。把小圖標(biāo)轉(zhuǎn)成Data URL可以省掉一次HTTP請(qǐng)求,但Base64字符串會(huì)讓圖片體積膨脹約33%。Google的PageSpeed Insights明確建議:超過(guò)2KB的圖片就別內(nèi)嵌了,省下的請(qǐng)求時(shí)間抵不上傳輸膨脹。

場(chǎng)景二:HTTP Basic認(rèn)證。Authorization頭里的Basic dXNlcjpwYXNzd29yZA==看著像加密,實(shí)則是user:password的明文轉(zhuǎn)碼。RFC 7617文檔強(qiáng)調(diào):沒有HTTPS時(shí),這種編碼"不提供任何機(jī)密性保護(hù)"。

場(chǎng)景三:JWT令牌結(jié)構(gòu)。一個(gè)標(biāo)準(zhǔn)JWT是三段Base64url編碼用點(diǎn)號(hào)連接:頭部、載荷、簽名。中間那段payload解碼后就是JSON明文,包含用戶ID和權(quán)限。很多人誤以為JWT加密了數(shù)據(jù),其實(shí)它只是簽名防篡改,內(nèi)容對(duì)任何能拿到令牌的人都是透明的。

場(chǎng)景四:JSON傳二進(jìn)制文件。API返回PDF或圖片時(shí),常見這種結(jié)構(gòu):

{ "filename": "invoice.pdf", "content": "JVBERi0xLjQKJeLjz9MKMSAwIG9iag..." }


content字段就是Base64編碼的文件內(nèi)容。這是MIME(多用途互聯(lián)網(wǎng)郵件擴(kuò)展)標(biāo)準(zhǔn)的遺產(chǎn),從1992年的電子郵件附件延續(xù)至今。

場(chǎng)景五:數(shù)據(jù)庫(kù)存二進(jìn)制。Redis字符串類型、部分NoSQL系統(tǒng)用Base64存證書或密鑰。代價(jià)是存儲(chǔ)空間和讀寫時(shí)的編解碼CPU開銷,但換來(lái)了跨系統(tǒng)文本傳輸?shù)募嫒菪浴?/p>

開發(fā)者最常踩的3個(gè)坑

坑一:把編碼當(dāng)加密。Base64的解碼不需要密鑰,瀏覽器控制臺(tái)輸入atob("dGVzdA==")就能還原。見過(guò)把用戶密碼Base64存數(shù)據(jù)庫(kù)的案例,這等于明文存儲(chǔ)。

坑二:URL安全版本混淆。標(biāo)準(zhǔn)Base64含+和/,在URL里會(huì)被轉(zhuǎn)義成%2B和%2F,增加長(zhǎng)度。JWT用的是Base64url變體,把+換成-、/換成_、去掉=填充?;煊脙烧邥?huì)導(dǎo)致簽名驗(yàn)證失敗。

坑三:忽略體積膨脹。把1MB圖片Base64編碼塞進(jìn)JSON,實(shí)際傳輸1.33MB。移動(dòng)端弱網(wǎng)環(huán)境下,這33%的額外流量可能直接拖垮體驗(yàn)。

JavaScript和Python的調(diào)用方式足夠簡(jiǎn)單:前者用btoa()/atob()或Buffer.from(str).toString('base64'),后者用base64.b64encode()。但工具順手不代表理解到位——知道什么時(shí)候不該用,比知道怎么用更重要。

這個(gè)48年前的算法至今沒有退役跡象。當(dāng)你下次復(fù)制一段JWT令牌到解碼網(wǎng)站時(shí),不妨想想:如果當(dāng)年電子郵件系統(tǒng)能直接傳二進(jìn)制,我們今天會(huì)用什么?

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
深圳電動(dòng)車限行新規(guī)公布!4月1日起實(shí)施!

深圳電動(dòng)車限行新規(guī)公布!4月1日起實(shí)施!

深圳本地寶
2026-03-25 22:09:55
越挖越多!張雪峰離世早有征兆,他的2個(gè)不良嗜好,或成催命符

越挖越多!張雪峰離世早有征兆,他的2個(gè)不良嗜好,或成催命符

爆笑大聰明阿衿
2026-03-25 23:04:10
譚瑞松,被判死緩

譚瑞松,被判死緩

新京報(bào)政事兒
2026-03-25 17:17:03
洛克希德·馬?。簩⒕_打擊導(dǎo)彈產(chǎn)量提升四倍

洛克希德·馬丁:將精確打擊導(dǎo)彈產(chǎn)量提升四倍

財(cái)聯(lián)社
2026-03-25 19:18:36
曝張雪峰倒下30分鐘后才被發(fā)現(xiàn),飲食習(xí)慣糟糕,一口氣吃8根雪糕

曝張雪峰倒下30分鐘后才被發(fā)現(xiàn),飲食習(xí)慣糟糕,一口氣吃8根雪糕

古希臘掌管松餅的神
2026-03-25 11:08:46
中國(guó)買了歐洲1000億人民幣的飛機(jī):東航向空客購(gòu)買101架A320

中國(guó)買了歐洲1000億人民幣的飛機(jī):東航向空客購(gòu)買101架A320

觀察者網(wǎng)
2026-03-25 18:00:06
伊朗最新回應(yīng):已被特朗普欺騙了兩次,不想再被愚弄!3架F-15戰(zhàn)機(jī)墜毀,特朗普最新回應(yīng):小意外!伊朗致函聯(lián)合國(guó),“176國(guó)傳閱”

伊朗最新回應(yīng):已被特朗普欺騙了兩次,不想再被愚弄!3架F-15戰(zhàn)機(jī)墜毀,特朗普最新回應(yīng):小意外!伊朗致函聯(lián)合國(guó),“176國(guó)傳閱”

每日經(jīng)濟(jì)新聞
2026-03-25 16:15:05
原來(lái)她是張雪峰前妻,90后歷史學(xué)博士?,兩人離婚后曾一起上節(jié)目

原來(lái)她是張雪峰前妻,90后歷史學(xué)博士?,兩人離婚后曾一起上節(jié)目

大鐵貓娛樂(lè)
2026-03-25 13:03:57
斬首”讓一將功成萬(wàn)骨枯成為歷史

斬首”讓一將功成萬(wàn)骨枯成為歷史

昊軒看世界
2026-03-23 18:50:52
周杰倫的INS被網(wǎng)友沖爆,新歌MV里手表調(diào)到“83”,疑用舊戀情炒作賣新唱片

周杰倫的INS被網(wǎng)友沖爆,新歌MV里手表調(diào)到“83”,疑用舊戀情炒作賣新唱片

回旋鏢
2026-03-25 20:38:44
熱搜上63萬(wàn)人破防的“奧特曼蛋糕”事件:有毒父母,逼瘋中國(guó)孩子

熱搜上63萬(wàn)人破防的“奧特曼蛋糕”事件:有毒父母,逼瘋中國(guó)孩子

小椰子專欄
2026-03-25 13:00:11
4個(gè)LV包都是假的!女子送檢后傻眼:全在專柜買的啊,最新回應(yīng)

4個(gè)LV包都是假的!女子送檢后傻眼:全在專柜買的啊,最新回應(yīng)

半島晨報(bào)
2026-03-25 15:30:03
張雪峰去世事件升級(jí)!很多人連夜下單AED,有店鋪一天銷售100多臺(tái)

張雪峰去世事件升級(jí)!很多人連夜下單AED,有店鋪一天銷售100多臺(tái)

火山詩(shī)話
2026-03-26 07:32:38
國(guó)際油價(jià)暴跌!3月24日,全國(guó)各地各大加油站92號(hào)汽油、95號(hào)汽油、98號(hào)汽油最新油價(jià)

國(guó)際油價(jià)暴跌!3月24日,全國(guó)各地各大加油站92號(hào)汽油、95號(hào)汽油、98號(hào)汽油最新油價(jià)

吉林烏拉侯
2026-03-25 02:56:11
人社部:職稱評(píng)審將重大調(diào)整??!

新浪財(cái)經(jīng)
2026-03-25 21:42:36

U23國(guó)足2-2逼平泰國(guó),名宿范志毅賽后點(diǎn)評(píng)言辭犀利,句句在理!

U23國(guó)足2-2逼平泰國(guó),名宿范志毅賽后點(diǎn)評(píng)言辭犀利,句句在理!

田先生籃球
2026-03-25 22:37:26
張雪峰的病,速效救心丸能救嗎?

張雪峰的病,速效救心丸能救嗎?

中國(guó)新聞周刊
2026-03-25 16:23:30
聯(lián)大通過(guò)決議 宣布奴隸制行為為最嚴(yán)重反人類罪

聯(lián)大通過(guò)決議 宣布奴隸制行為為最嚴(yán)重反人類罪

財(cái)聯(lián)社
2026-03-26 01:24:06
戲都沒演明白還當(dāng)評(píng)委,自己都沒拿過(guò)獎(jiǎng),坐在評(píng)審團(tuán)位置不心虛嗎

戲都沒演明白還當(dāng)評(píng)委,自己都沒拿過(guò)獎(jiǎng),坐在評(píng)審團(tuán)位置不心虛嗎

娛樂(lè)圈筆娛君
2026-03-25 10:46:06
任長(zhǎng)霞離世后丈夫攜子合葬,獨(dú)子現(xiàn)狀引關(guān)注

任長(zhǎng)霞離世后丈夫攜子合葬,獨(dú)子現(xiàn)狀引關(guān)注

孤城落日
2026-03-24 22:23:59
2026-03-26 08:31:00
Ping值焦慮
Ping值焦慮
有態(tài)度網(wǎng)友ytd
43文章數(shù) 0關(guān)注度
往期回顧 全部

科技要聞

紅極一時(shí)卻草草收?qǐng)?,Sora宣布正式關(guān)停

頭條要聞

伊朗軍方稱擊落美軍F-18戰(zhàn)機(jī) 現(xiàn)場(chǎng)畫面披露

頭條要聞

伊朗軍方稱擊落美軍F-18戰(zhàn)機(jī) 現(xiàn)場(chǎng)畫面披露

體育要聞

35歲替補(bǔ)門將,憑什么入選英格蘭隊(duì)?

娛樂(lè)要聞

張雪峰遺產(chǎn)分割復(fù)雜!是否立遺囑成關(guān)鍵

財(cái)經(jīng)要聞

管濤:中東局勢(shì)如何影響人民幣匯率走勢(shì)?

汽車要聞

智己LS8放大招 30萬(wàn)內(nèi)8系旗艦+全線控底盤秀實(shí)力

態(tài)度原創(chuàng)

房產(chǎn)
數(shù)碼
家居
手機(jī)
公開課

房產(chǎn)要聞

41億!259畝!建學(xué)?!齺嗊@個(gè)大城更,最新方案曝光!

數(shù)碼要聞

3999元!蘋果AirPods Max 2耳機(jī)開始接受訂購(gòu):4月1日發(fā)貨

家居要聞

輕奢堇天府 小資情調(diào)

手機(jī)要聞

realme真我GT8 Pro適配Android 17開發(fā)者預(yù)覽版教程說(shuō)明發(fā)布

公開課

李玫瑾:為什么性格比能力更重要?

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版