Base64是一種將任意二進制數據(不僅僅是純文本字符組成的數據)轉換為純文本消息的方法,然后可以通過計算機網絡傳輸。這就是所謂的編碼。雖然Base64編碼的消息的輸出不是人類能夠容易理解的,但它仍然包含64個常見的英文字...
Base64是一種將任意二進制數據(不僅僅是純文本字符組成的數據)轉換為純文本消息的方法,然后可以通過計算機網絡傳輸。這就是所謂的編碼。雖然Base64編碼的消息的輸出不是人類能夠容易理解的,但它仍然包含64個常見的英文字符,這就是名字的由來,ASCII編碼系統以其適應性和簡單性而聞名。base64背后的想法是因為需要通過網絡通信(如電子郵件)獲得更多的簡單文本字符。最初的電子郵件消息最初是以美國信息交換標準碼(ASCII),計算機中用來在顯示器或打印機上將英文字母字符表示為文本的編碼方法。作為需要通過的附加二進制信息,開發了新的編碼方案。base64編碼方法首次在多用途Internet郵件擴展(MIME)標準中進行了描述。MIME標準定義了一些方法,通過這些方法,其他非ASCII編碼的字符,如非英語語言使用的字母表,以及其他任意的二進制數據都可以使用也可以被編碼成ASCII序列,并通過電子郵件發送。在MIME標準描述的兩種主要編碼方式中,base64與另一種被稱為帶引號的可打印字符共享角色。雖然帶引號的可打印方法能夠將ASCII擴展到有限的94個可打印字符之外,base64可以接受任何字節序列并將其轉換為ASCII序列。base64需要獲取不符合ASCII標準的數據字符串并將其轉換為ASCII要做到這一點,編碼方法是將數據收集成三個字節的組,并將它們轉換成四個代表相應ASCII字符的數字的過程。由于一個字節是8位,其中每一位都用1或0表示,所以三個字節被端到端連接起來,整個序列進入24位緩沖區然后將24個1和0分成4組,每組6位,每個組分配匹配ASCII字符的數字。由于base64能夠對任何二進制數據進行編碼,因此任何字節序列都可以通過這個過程。但是,在編碼字節數不能被整除的情況下,有一個陷阱如果一個字節序列包含四個或五個字節,那么仍然需要一些東西來填充緩沖區并補足24個字節。在這種情況下,每個丟失的字節用8個0表示,然后在編碼完成后轉換為填充字符,這就是前面提到的第65個字符的來源,在編碼消息中用等號(=)表示;它只會出現在編碼的最后,如果需要填充。雖然base64最初是為通過電子郵件傳輸二進制數據而設計的,除了MIME外,它的用法在許多其他領域也發揮了作用。其中一個相當常見的用途是web數據庫和應用程序對數據進行編碼,以便在web表單上創建統一資源定位器(URL)。可擴展標記語言(XML)還使用了一個允許二進制數據的變體,例如小圖像,包含在XML文檔中。加密方法和其他安全相關技術(如隱藏密碼)也有其他變體
-
發表于 2020-08-06 23:17
- 閱讀 ( 1162 )
- 分類:電腦網絡