亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Base64編碼的原理是什么

發布時間:2022-02-19 14:09:28 來源:億速云 閱讀:206 作者:iii 欄目:開發技術

這篇文章主要講解了“Base64編碼的原理是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Base64編碼的原理是什么”吧!

Base64是一種基于64個可打印字符來表示二進制數據的表示方法。由于 2的6次方是64,所以每6個比特為一個單元,對應某個可打印字符。3個字節有24個比特,對應于4個Base64單元,即3個字節可由4個可打印字符來表示。它可用來作為電子郵件的傳輸編碼。在Base64中的可打印字符包括字母A-Z、a-z、數字0-9,這樣共有62個字符,此外兩個可打印符號在不同的系統中而不同。在MIME格式中,剩余兩個字符是加號+和斜杠/,等號=用來作為后綴用途。UTF-7是一個修改版Base64,主要的區別在于不用等號=補余,因為該字符通常需要大量的轉譯。在IRCu等軟件所使用的P10 IRC服務器間協議中,將+/改成了[]。Base64編碼可用于在HTTP環境下傳遞,不在末尾填充=號,并將標準Base64中的+和/分別改成了-和_。

base64的原理

base64編碼后的數據比原始數據略長,比原來長1/3。為什么會長1/3?我們學習下原理,之后工作中base64就再也不會擋道了。轉換的時候,將3字節的數據,先后放入一個24位的緩沖區中,先來的字節占高位。數據不足3字節的話,于緩沖器中剩下的比特用0補足。每次取出6比特,按照其值選擇ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作為編碼后的輸出,直到全部輸入數據轉換完成。若原數據長度不是3的倍數時且剩下1個輸入數據,則在編碼結果后加2個=;若剩下2個輸入數據,則在編碼結果后加1個=。換句話,本來3個字節,base64經過自己的編碼成為4個字節。比原理多了1/3。來,舉個例子

文本hel
ascii 編碼104101108
二進制011010000110010101101100
base64 6位01101000 0110010101101100
base64 10進制編號2662144
base64 結果aGVs

hel的base64編碼結果就是aGVs

base64碼表

Base64編碼的原理是什么
base64的應用

base64的應用特別廣泛,個人在開發中遇到最多的兩個方面,第一個是URL的base64,另一個是圖片base64。先說第一種,已經有urlencode了,為什么還需要base64 的URL。各有用途。urlencode是將-_. 之外的所有非字母數字字符都將被替換成百分號(%)后跟兩位十六進制數,空格則編碼為加號(+)。如果一個URL里面有+ 有空格,是不是urlencode就搞不定,使用base64就會迎刃而解。帶來的代價就URL比原理長了1/3

圖片編碼的問題,經常跟客戶端開發的時候,客戶端使用二進制流上傳圖片的時候比較復雜,就可以使用base64將圖片的二進制編碼轉成base64,服務端接到數據之后再basedecode之后就是圖片的二進制流。特別方便,帶來的結果就是,傳輸的數據多了1/3。

遇到的問題

根據RFC 822規定,每76個字符,還需要加上一個回車換行。出問題的一般都是822規定,有的語言,對base64decode的時候,發現有換行符就decode失敗了,究其原因基本都市822規定,有很多換行,decode的時候解碼失敗,知道原因了就特別簡單,將換行符\r|\r\n 替換成 空,再base64decode就可以了。

感謝各位的閱讀,以上就是“Base64編碼的原理是什么”的內容了,經過本文的學習后,相信大家對Base64編碼的原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

余江县| 资讯| 双鸭山市| 乌苏市| 银川市| 开远市| 延津县| 景泰县| 富锦市| 甘孜县| 康定县| 万荣县| 常熟市| 抚远县| 家居| 建德市| 阿坝县| 龙胜| 灌南县| 兴海县| 蒙自县| 马关县| 辽宁省| 藁城市| 九龙坡区| 买车| 盐城市| 华安县| 衢州市| 奎屯市| 高密市| 大邑县| 广昌县| 张家界市| 汝州市| 双桥区| 罗田县| 永平县| 漳平市| 罗源县| 稻城县|