base64編碼和解碼

2021-09-01 02:39:01 字數 1684 閱讀 8503

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...