如何用通俗易懂的語言解釋base64

時間 2021-05-07 04:46:26

1樓:Intopass

base64只是一種用文字表示二進位制的方法,如果你的介面支援原生的二進位製流,那根本不需要base64,因為直接上二進位製流更省空間。

比如說乙個4位元組整數,如果是二進位製流那就是4位元組。

如果是轉化成文字,表示成二進位制文字時是32個字元,每個字元用ASCII編碼是1位元組,所以為32位元組(是原生二進位製流的8倍)

表示為十進位製非負整數時最大為10個字元,占用10個位元組(是原生二進位製流的2.5倍)

表示為16進製制文字時,最大為8個字元,占用8個位元組(是原生二進位製流的2倍)

如果採用base64編碼,最大為6個字元,占用6個位元組(是原生二進位製流的1.5倍)

綜上所述,base64是用文字表示二進位制時一種占用空間較小的方法。

2樓:用心閣

為什麼需要Base64?

因為需要將二進位制變成文字(text)儲存或傳輸。

比如需要在XML裡內嵌一段二進位制。

Base64怎麼編碼?

把二進位制劃分為多個3個位元組的塊

把每3個位元組(24位)轉換成4個6位。

每個六位根據查表對應乙個ASCII符號。

把對應的ASCII拼接在一起。

其他還有些瑣碎的事,比如不足3位元組怎麼處理。

查表就是類似這樣一張表,左邊是6位二進位制的值,右邊是對應的ASCII字母。

例如:Base64的解碼就是逆過來的過程,先將文字查表得到6個位元,然後把4個6位元拼為3個位元組。

除了Base64編碼,還有Base32和Base16編碼。

有人會問,為什麼不用Base128呢?,答案就是ASCII碼的低位是控制字元,不符合文字協議的要求。

3樓:LOVE

只是一種編碼方案,甚至就是一種數值表示方案,和2進製8進製(乙個字元位寬為3)16進製制(乙個字元4位)一樣,看成64進製(乙個字元可以表示6位)就好。

同時,BASE64和加密沒有半毛錢關係。從轉換成二進位制後的角度上看,它依然是明碼

4樓:wuxinliulei

將所有的0-127的ASCII碼程式設計 a -z A -Z 0 -9 + / = 號組成的字串就這樣。。。

可見字元一共64個,只用6位就能索引,所以用3個位元組來表示4個索引的模式

在RSA安全演算法中,經常用來編碼key得出乙個結果……也有在hmac和md5種編碼結果的,不符合習慣不過

-DN部落格

什麼是Base64? - 艾華生的部落格 - CSDN部落格-DN部落格

5樓:書書

讀完劉學酥的答案,說下我的理解。

所有的資訊本質上都是二進位制的0和1,所以各種眼花繚亂的編碼其實都是01組成的序列和字母符號漢字的對應關係。

比如 0100111100101010100011 這串二進位制,在UTF-8裡表示的是 「我是誰」。如果你想把「我是誰」轉化成BASE64,你就要先把「我是誰」轉化成「0100111100101010100011」 這串二進位制,然後再把這串二進位制轉化成 「ZG0abd12" 的BASE64 編碼。

(上面的UTF8和BASE64表示都是舉例)如果不對,請指正。

如何用通俗易懂的語言解釋指令碼(script)是什麼?

胡羅舶COOLHOBO Shirley 開發達人 指令碼是一種特定的描述性語言,計算機會按照程式順序的執行它,自動化的幫你完成一系列工作的程式。它非常方便快速,並且可以幫助開發者節省時間,而不用每次手動去執行指令。 天地一色 我覺得回答這個問題要解釋一方面要解釋它的引申意思,還要說一下它在計算機中產...

如何用通俗易懂的語言解釋 調和級數為什麼叫 調和 級數?

予一人 這個是數學史的問題。調和 實際上也就是 和諧 harmonic 現有文獻表明,它是由古希臘畢達哥拉斯學派最早發現 命名並加以系統研究的乙個數學概念。畢達哥拉斯學派,既是乙個學術組織,也是乙個宗教組織。他們喜歡從神秘主義的角度來研究數學,或者說,喜歡從數學中發現某種 神秘性 mystery 因...

如何用通俗易懂的語言解釋拉康的三維世界 實在界 想象界 象徵界?

符號界 象徵界 the Symbolic 即所謂的象徵秩序 symbolic order 它表明主體的整個存在必須是經由符號系統所調停和支配的。包括一切感知必須受某種表象模式的規制 審美和愛欲必須受某種符號性的慾望結構支配 言語和反思受到符號化的邏輯體系制約等等。這一象徵秩序幾乎構成了主體所能把握和...