摘要:編碼三個重要概念三個字節由四個字節表示的過程碼表補位如何用三個字節表示四個字節一個字節由位二進制組成,三個字節總共位,所以轉換后有效的二進制位數為位。
Base64編碼 1、三個重要概念
三個字節由四個字節表示的過程
Base64碼表
補位
2、如何用三個字節表示四個字節一個字節由8位二進制組成,三個字節總共24位,24 ÷ 4 = 6 , 所以轉換后有效的二進制位數為6位。計算機以8位二機制為基礎,所以剩下的兩位在高位填充 0 。由此引申出兩個重要的概念
為什么是64位
對照表
6位二進制,$2^6$ = 64 所以只能是64,當然如果愿意浪費空間也可以是 32 16 等等。對應的這些二進制怎么表示,所以定義了一個0-63的碼表,分別有 A-Za-z0-9+/ 剛好64個字符
索引 | 字符 | 索引 | 字符 | 索引 | 字符 | 索引 | 字符 | 索引 | 字符 | 索引 | 字符 | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | A | 1 | B | 2 | C | 3 | D | 4 | E | 5 | F | |||||
6 | G | 7 | H | 8 | I | 9 | J | 10 | K | 11 | L | |||||
12 | M | 13 | N | 14 | O | 15 | P | 16 | Q | 17 | R | |||||
18 | S | 19 | T | 20 | U | 21 | V | 22 | W | 23 | X | |||||
24 | Y | 25 | Z | 26 | a | 27 | b | 28 | c | 29 | d | |||||
30 | e | 31 | f | 32 | g | 33 | h | 34 | i | 35 | j | |||||
36 | k | 37 | l | 38 | m | 39 | n | 40 | o | 41 | p | |||||
42 | q | 43 | r | 44 | s | 45 | t | 46 | u | 47 | v | |||||
48 | w | 49 | x | 50 | y | 51 | z | 52 | 0 | 53 | 1 | |||||
54 | 2 | 55 | 3 | 56 | 4 | 57 | 5 | 58 | 6 | 59 | 7 | |||||
61 | 8 | 62 | 9 | 63 | + | 64 | / |
author herbert QQ: 464884492
3、手工編碼 3.1 剛好轉換成4個二進制根據規則使用三個字節轉四個字節表示,現在就拿123做實例說明,通過查詢ASCII表得知123的二進制分別是 0x31(0011 0001)、0x32(0011 0010)、0x33(0011 0011),根據規則得到4個6位二進制分別是 (0011 00) (01 0011) (0010 00) (11 0011),然后依次在高位補0即,右移2為,得到4個8位二進制 (00 0011 00) (00 01 0011) (00 0010 00) (00 11 0011),通過進制轉換得到4個十進制數字,分別是(12)(19)(8)(51)。通過查詢上邊碼表中對應的索引的四個 字符分別是(M)(T)(I)(z),所以 123 對應的 base64編碼為MTIz
3.2 轉換后還剩下4位二進制以12來說,字節長度為16,根據規則轉換后會剩下 4 個二進制位(0011 00) (01 0011) (0010) ,分配好以后,分別在高位補兩個0 (00 0011 00) (00 01 0011) (00 0010 ),但最后一個字節,位數不夠8位,所以在最后一個字節的末尾補上2個 0 (00 0011 00) (00 01 0011) (00 0010 00),然后在分別轉換成十進制數為(12)(19)(8)查詢索引表得到字符MTI,目前字符長度不夠4位,所以在最后補上1個=。由此12最終的base64編碼為MTI=
3.3 轉換后還剩下2位二進制以1來說,字節長度為8 ,根據規則轉換后會剩下 2 個二進制位 (0011 00) (01),分配好以后,分別在高位補兩個0 (00 0011 00) (00 01 ),但最后一個字節位數不夠8位,所以在最后一個字節的末尾補上 4 個0 (00 0011 00) (00 01 0000),然后轉換成十進制數為(M)(Q),目前長度不夠4位,所以在最后補上2個= 由此1最終的base64編碼為MQ==
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103897.html
摘要:編碼原理編碼之所以稱為,是因為其使用個字符來對任意數據進行編碼,同理有編碼。本文學習網上資料整理而來,僅供個人學習使用,部分內容僅代表個人理解及思考。 1.什么是Base64 Base64是一種基于64個可打印字符來表示二進制數據的編碼方式,是從二進制數據到字符的過程。原則上,計算機中所有內容都是二進制形式存儲的,所以所有內容(包括文本、影音、圖片等)都可以用base64來表示。 2....
摘要:模塊提供了在二進制數據和可打印字符間編解碼的功能,包括中定義的等編碼。可應用于生成安全的或文件系統編碼場景中。等同于對類字節對象或純字符組成的字符串進行標準解碼,返回解碼后的字節序列。 base64模塊提供了在二進制數據和可打印ASCII字符間編解碼的功能,包括RFC3548中定義的Base16, Base32, Base64, Ascii85, Base85等編碼。 RFC3548中...
摘要:是一種能將任意資料用種字元組合成字串的方法,而這個資料和字串資料彼此之間是可以互相轉換的,十分方便。實際測試編碼與解碼速度的話,提供的,要比套件提供的還要快至少倍,比提供的還要快至少倍。 Base64是一種能將任意Binary資料用64種字元組合成字串的方法,而這個Binary資料和字串資料彼此之間是可以互相轉換的,十分方便。在實際應用上,Base64除了能將Binary資料可視化之外...
摘要:比如其中一個的應用場景,在中取代的改進使用的方案是從代碼層分析耗時差值原因,盡管兩者都使用了位操作進行計算,但在單位編碼長度上多了數值判斷,由此導致其速度下降。 現在幾乎所有企事業單位、政府機構、軍工系統等的IT生產系統都會用到Base64編碼,從RSA安全密鑰到管理信息系統登錄入口回跳,目前越來越多的IT系統研發者開始使用 Base62x 替換 Base64. -Base62x 提供...
摘要:一編碼在聊圖片編碼之前,先來說說編碼,其實這一塊已經有很多例子了。一次連接又是域名解析,開啟連接,發送請求,等待網絡延遲和服務器處理時間,下載資源較小是幾個意思 一、Base64編碼 在聊圖片編碼之前,先來說說Base64編碼,其實這一塊已經有很多例子了。 Base64編碼么,其實就是一個招待好6爺,伺候好8爺的過程 Base64是把字符串轉為二進制,然后末尾補零,使總長度能除盡24...
摘要:它是按以下方式工作的。對已填充的二進制進行編碼時,任何完全填充不包括原始數組中的位的位組都有特殊的第個符號表示。剩下的兩個位組都是填充碼,用來表示。最新的瀏覽器提供了自動生成的方法和希望此文可以幫助你完全理解。 HTTP將BASE64-編碼用于基本認證和摘要認證,在幾種HTTP擴展中也使用了該編碼。 Base-64編碼保證了二進制數據的安全 Base-64編碼可以將任意一組字節轉換為較...
閱讀 1697·2021-10-09 09:44
閱讀 3263·2021-09-27 13:36
閱讀 1520·2021-09-22 15:33
閱讀 1274·2021-09-22 15:23
閱讀 1159·2021-09-06 15:02
閱讀 1695·2019-08-29 16:14
閱讀 2901·2019-08-29 15:26
閱讀 2408·2019-08-28 18:08