婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Base64編碼的深入認(rèn)識與理解

Base64編碼的深入認(rèn)識與理解

熱門標(biāo)簽:福建ai電銷機(jī)器人加盟公司 鄭州中國移動400電話申請 地圖標(biāo)注植物名稱 揭陽外呼系統(tǒng)公司 地圖標(biāo)注審核工作怎么樣注冊 無錫電銷機(jī)器人銷售 招聘信息 南召400電話辦理資費 去哪里辦卡 熱血傳奇沃瑪森林地圖標(biāo)注

Base64編碼的深入認(rèn)識與理解

  之前在很多業(yè)務(wù)中都有見過或者用到過Base64編碼,但一直一知半解,沒有對它有一個深入的認(rèn)識和理解。今天就來聊一聊Base64編碼的問題。

       首先要明確的是,Base64是一種可逆的編碼方式,提到編碼方式,我們首先想到的肯定是Ascii、GBK、Unicode這些常用的編碼方法,那么Base64與這些編碼方式有什么不同呢?

       簡單來將,Base64就是一種用64個Ascii字符來表示任意二進(jìn)制數(shù)據(jù)的方法。主要用于將不可打印的字符轉(zhuǎn)換成可打印字符,或者簡單的說將二進(jìn)制數(shù)據(jù)編碼成Ascii字符。Base64是網(wǎng)絡(luò)上最常用的傳輸8bit字節(jié)數(shù)據(jù)的編碼方式之一。

       Base64的原理其實很簡單,首先,需要準(zhǔn)備一個包含64個字符的表格(如下表),0~63分別對應(yīng)了唯一一個字符,比如18對應(yīng)的是S。

       然后,對二進(jìn)制數(shù)據(jù)進(jìn)行處理,每3個字節(jié)一組,一共3x8=24bit,將這24bit劃分為4組,每組正好6個bit,6bit的數(shù)據(jù)剛好可以表示0~63的范圍,也就可以對應(yīng)上表的64個字符。這樣我們就得到了4個數(shù)字作為索引,然后查表獲得相應(yīng)的4個字符,就得到了編碼后的字符串。下表將整個處理的過程描述的很清楚。

文本 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編碼會把3字節(jié)的二進(jìn)制數(shù)據(jù)編碼為4字節(jié)的文本數(shù)據(jù),長度增加為原來的4/3。如果要編碼的二進(jìn)制數(shù)據(jù)不是3的倍數(shù),最后會剩下1個或2個字節(jié)怎么辦?此時,需在原數(shù)據(jù)后面添加1個或2個零值字節(jié),使其字節(jié)數(shù)是3的倍數(shù)。然后,在編碼后的字符串后面添加1個或2個等號“=”,表示所添加的零值字節(jié)數(shù)。解碼的時候,會自動去掉。

       下面來看一下Base64編碼的優(yōu)缺點。

        優(yōu)點:可以將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成可打印字符,方便傳輸數(shù)據(jù);對數(shù)據(jù)進(jìn)行簡單的加密,肉眼安全。

        缺點:內(nèi)容編碼后的體積會變大,編碼和解碼需要額外的工作量。

       它的使用場景有很多,比如將圖片等資源文件以Base64編碼形式直接放于代碼中,使用的時候反Base64后轉(zhuǎn)換成Image對象使用;有些文本協(xié)議不支持不可見字符的傳遞,只能轉(zhuǎn)換成可見字符來傳遞信息。有時在一些特殊的場合,大多數(shù)消息是純文本的,偶爾需要用這條純文本通道傳一張圖片之類的情況發(fā)生的時候,就會用到Base64,比如多功能Internet 郵件擴(kuò)充服務(wù)(MIME)就是用Base64對郵件的附件進(jìn)行編碼的。

      感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • javascript從image轉(zhuǎn)換為base64位編碼的String
  • js對圖片base64編碼字符串進(jìn)行解碼并輸出圖像示例
  • c# Base64編碼和圖片的互相轉(zhuǎn)換代碼
  • js 顯示base64編碼的二進(jìn)制流網(wǎng)頁圖片
  • JavaScript Base64編碼和解碼,實現(xiàn)URL參數(shù)傳遞。
  • PHP安全的URL字符串base64編碼和解碼
  • javascript中的Base64、UTF8編碼與解碼詳解
  • 各種格式的編碼解碼工具類分享(hex解碼 base64編碼)

標(biāo)簽:鹽城 宣城 桂林 東莞 景德鎮(zhèn) 文山 黔南 南昌

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Base64編碼的深入認(rèn)識與理解》,本文關(guān)鍵詞  Base64,編碼,的,深入,認(rèn)識,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Base64編碼的深入認(rèn)識與理解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Base64編碼的深入認(rèn)識與理解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 当涂县| 台北县| 梅河口市| 利辛县| 安庆市| 思南县| 信阳市| 广东省| 申扎县| 广德县| 汤阴县| 呼和浩特市| 乐清市| 德惠市| 大关县| 舟山市| 绵竹市| 河间市| 潢川县| 青冈县| 汝城县| 屏山县| 年辖:市辖区| 壶关县| 常州市| 龙井市| 米易县| 杭州市| 泾源县| 定安县| 襄樊市| 定结县| 城步| 萨嘎县| 长治县| 南投县| 台北县| 肥西县| 浙江省| 大埔县| 新丰县|