Base64編碼的深入認識與理解

2022-10-06 05:30:13 字數 1357 閱讀 8051

base64編碼的深入認識與理解

之前在很多業務www.cppcns.com中都有見過或者用到過base64編碼,但一直一知半解,沒有對它有乙個深入的認識和理解。今天就來聊一聊base64編碼的問題。

首先要明確的是,base64是一種可逆的編碼方式,提到編碼方式,我們首先想到的肯定是ascii、gbk、unicode這些常用的編碼方法,那麼base64與這些編碼方式有什麼不同呢?

www.cppcns.com;  簡單來將,base64就是一種用64個ascii字元來表示任意二進位制資料的方法。主要用於將不可列印的字元轉換成可列印字元,或者簡單的說將二進位制資料編碼成ascii字元。base64是網路上最常用的傳輸8bit位元組資料的編碼方式之一。

www.cppcns.com;      ba程式設計客棧se64的原理其實很簡單,首先,需要準備乙個包含64個字元的**(如下表),0~63分別對應了唯一乙個字元,比如18對應的是s。

然後,對二進位制資料進行處理,每3個位元組一組,一共3x8=24bit,將這24bit劃分為4組,每組正好6個bit,6bit的資料剛好可以表示0~63的範圍,也就可以對應上表的64個字元。這樣我們就得到了4個數字作為索引,然後查表獲得相應的4個字元,就得到了編碼後的字串。下表將整個處理的過程描述的很清楚。文字m

an

ascii編碼

7797

110二進位制位01

0011

0101

1000

0101

1011

10

索引19225

46base64編碼tw

fu

所以,base64編碼會把3位元組的二進位制資料編碼為4位元組的文字資料,長度增加為原來的4/3。如果要編碼的二進位制資料不是3的倍數,最後會剩下1個或2個位元組怎麼辦?此時,需在原資料後面新增1個或2個零值位元組,使其位元組數是3的倍數。然後,在編碼後的字串後面新增1個或2個等號「=」,表示所新增的零值位元組數。解碼的時候,會自動去掉。

下面來看一下base64編碼的優缺點。

優點:可以將二進位制資料轉換成可列印字元,方便傳輸資料;對資料進行簡單的加密,肉眼安全。

缺點:內容編碼後的體積會變大,編碼和解碼需要額外的工作量。

它的使用場景有很多,比如將等資源檔案以base64編碼形式直接放於**中,使用的時候反base64後轉換成image物件使用;有些文字協議不支援不可見字元的傳遞,只能轉換成可見字元來傳遞資訊。有時在一些特殊的場合,大多數訊息是純文字的,偶爾需要用這條純文字通道傳一張之類的情況發生的時候,就會用到base64,比如多功能internet 郵件擴充服務(mime)就是用base64對郵件的附件進行編碼的。

本文標題: base64編碼的深入認識與理解

本文位址: /wangluo/qitazonghe/181389.html

base64編碼 動畫演示 Base 64 編碼

base64 是一種十分流行的編碼方式,僅僅使用 64 個字元加等號 就可以以文字的形式表示所有的二進位制資料了,因為它能夠把二進位制格式通過編碼轉換成可見字元,所有我們就可以通過的把二進位制格式比如,檔案等通過 base64 編碼然後通過文字的形式共享出去,是不是很神奇呀。把輸入的資料轉換成 二進...

base64 的編碼與解碼

base64編碼是網路上常見的用於傳輸8bit位元組資料的一種編碼方式之一base64的初衷,是為了滿足電子郵件中不能直接使用非ascii碼字元的規定.現在最常用的應用場景就是在http協議上傳輸較長的文字資訊。它是將使用者輸入的二進位制數 據,打包成一種安全格式,將其作為http首部欄位的值傳送出...

Base64編碼演算法

base64要求把每三個8bit的位元組轉換為四個6bit的位元組 3 8 4 6 24 然 後把6bit再添兩位高位0,組成四個8bit的位元組,也就是說,轉換後的字串理 論上將要比原來的長1 3。轉換後,我們用乙個碼表來得到我們想要的字串 也就是最終的base64編碼 這個表是這樣的 0 a 1...