91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

base64編碼原理的示例分析

發布時間:2022-03-23 14:11:53 來源:億速云 閱讀:146 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關base64編碼原理的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

base64編碼原理

最近在做將文件轉成base64編碼,并保存在文件中。編碼后的文件比編碼前的文件大1/3。于是研究了一下base64編碼的原理。

base64編碼的由來

我們在通過網絡傳輸文件時,并不是所有的字節都可以傳輸的。如我們在發送郵件時,只支持可見字符的傳送,像ASCII碼的控制字符不能通過郵件發送;圖片的二進制流并不是每個字節都是可見字符。

這時候我們需要把不可見字符轉換為可見字符。于是就有了base64編碼,Base64就是一種基于64個可打印字符來表示二進制數據的表示方法。

base64編碼原理

 看一下Base64的索引表,字符選用了"A-Z、a-z、0-9、+、/" 64個可打印字符。數值代表字符的索引,這個是標準Base64協議規定的,不能更改。64個字符用6個bit位就可以全部表示,一個字節有8個bit位,剩下兩個bit就浪費掉了,這樣就不得不犧牲一部分空間了。這里需要弄明白的就是一個Base64字符是8個bit,但是有效部分只有右邊的6個bit,左邊兩個永遠是0。

base64編碼原理的示例分析

 如何將字符轉換為base64編碼,首先我們來看個例子,更容易理解

base64編碼原理的示例分析

 首先我們將字符轉換為二進制,將二進制數據分割,每6位分割成base64的有效為,然后在前補0,將補0 后的8位二進制轉為十進制數據,十進制數據就是base64編碼的索引,根據索引查找對應的編碼即可。

8和6的最小公倍數是24,也就是說3個傳統字節可以由4個Base64字符來表示,保證有效位數是一樣的,這樣就多了1/3的字節數來彌補Base64只有6個有效bit的不足。因此文件的大小也增加1/3。

原則是Base64字符的最小單位是四個字符一組,那這才兩個字符,后邊補兩個"="吧。其實不用"="也不耽誤解碼,之所以用"=",可能是考慮到多段編碼后的Base64字符串拼起來也不會引起混淆。由此可見Base64字符串只可能最后出現一個或兩個"=",中間是不可能出現"="的。

關于“base64編碼原理的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

诸暨市| 图木舒克市| 石棉县| 永靖县| 屯门区| 凤山市| 隆安县| 乌恰县| 固始县| 长海县| 瓮安县| 永修县| 维西| 内黄县| 彭水| 阜阳市| 南丹县| 特克斯县| 深州市| 会理县| 北川| 阿瓦提县| 民勤县| 体育| 晋江市| 宜章县| 保山市| 山丹县| 隆昌县| 通山县| 鄂托克前旗| 双辽市| 南华县| 九江市| 新巴尔虎右旗| 海林市| 丁青县| 铅山县| 沙田区| 汨罗市| 平罗县|