base64是一種任意二進位製到文字字串的編碼方法,基於64個可列印字元來表示二進位制資料的方法。
簡述base64編碼就是從二進位制到字元的過程。
採用base64編碼具有不可讀性,需要解碼後才能閱讀。
標準的base64並不適合直接放在url裡傳輸,因為url編碼器會把標準base64中的/
和+
字元變形為形如"%xx"的形式。
base64是一種通過查表的編碼方法,不能用於加密,即使使用自定義的編碼表也不行。
base64適用於小段內容的編碼,比如數字證書簽名、cookie的內容等。
優點:速度快,ascii字元,肉眼不可理解
缺點:編碼比較長,非常容易被破解,僅適用於加密非關鍵資訊的場合
原理用一句話概述就是:把3位元組的二進位制資料編碼成4位元組的文字資料。
記憶體乙個位元組佔8位。
轉之前:s13
轉為ascii:115 49 51
轉為二進位制:01110011 00110001 00110011
6位為一組(4組):011100 110011 000100 110011
高位補0(一組八位):00011100 00110011 00000100 00110011
得出10進製:28 51 4 51
查表找出對應字元:c z e z
python中的base64
需要import base64
這個module,
該module中有6個函式用於base64的編碼和解碼,分成三組來說:
base64.b64decode(s, altchars=none, validate=false)
解碼
base64.b64encode(s, altchars=none)
編碼
altchars
引數必須是長度為2的位元組包,會用於替換編碼後資料中的+
和/
。
validate
引數預設為false,如果為true,在解碼前會檢驗s中是否有非base64字母表中的字元,如果有的話,報錯。
base64.standard_b64encode(s)
base64.standard_b64decode(s)
這一組方法分別對應上一組方法(相當於b64decode(s)、b64encode(s))
base64.urlsafe_b64decode(s)
base64.urlsafe_b64encode(s)
該組編碼後會將輸出資料中的』+』和』/』替換為』-『和』』。解碼前則將資料中的』-『和』』替換為』+』和』/』。(適合在url中用)
參考資料
廖雪峰官方**
base64編碼 解碼
ps base64是一種資料編碼方式,目的是讓資料符合傳輸協議的要求,有些人誤用它進行資料加密 base64編碼 nsstring base64encodedstringwithstring nsstring string base64解碼 nsstring base64decodedstringw...
Base64編碼解碼
一.base64編碼由來 為什麼會有base64編碼呢?因為有些網路傳送渠道並不支援所有的位元組,例如傳統的郵件只支援可見字元的傳送,像ascii碼的控制字元就不能通過郵件傳送。這樣用途就受到了很大的限制,比如二進位製流的每個位元組不可能全部是可見字元,所以就傳送不了。最好的方法就是在不改變傳統協議...
關於Base64編碼和解碼
base64 概述 base64是jdk8提出的乙個新特性,可以用來進行按照一定規則編碼和解碼 base64工具類提供了一套靜態方法獲取下面三種base64編解碼器 獲取編碼器和解碼器的方法 static base64.decoder getdecoder 基本型 base64 解碼器。static...