URL安全的Base64演算法

2021-09-26 19:13:55 字數 702 閱讀 7543

base64是取3個位元組(24位)的資料強行組成4個位元組(32位)的資料做為乙個分組,24位分成4個位元組的話,每個位元組分到6位,然後前面補兩位0,然後這個位元組的值位索引去base64表找值。

1. 因為前面補兩個0,那麼只有6位來算索引,最長就是2^6=64,所以base64表只有64個。

2. 因為每4個位元組乙個分組,所以base64後的長度肯定是4的倍數。

3. 因為不是所有的字串都能被3整除,所以存在不夠的情況,那麼就在後面補了=號。

4. 因為很多url中包含了+ / =字元,做http傳輸的時候url編碼會把這三個字元編碼掉,所以url安全的處理是把+換成-,把/換成_,把=去掉。

所以url安全的base64在encode後會這樣處理:

string_replace(data, "+", "-");

string_replace(data, "/", "_");

string_replace(data, "=", "");

url安全的base64首先會這樣處理在decode:

string_replace(data, "-", "+");

string_replace(data, "_", "/");

int mod4 = data.size()%4;

if (mod4 > 0)

使用Base64加密URL

加密 convert.tobase64string 微軟文件 傳送門 解密 convert.frombase64string 微軟文件 傳送門 我們編寫兩個方法,用於加密和解密 public string base64encode string str 加密 public string base64...

使用Base64加密URL

加密 convert.tobase64string 微軟文件 傳送門 解密 convert.frombase64string 微軟文件 傳送門 我們編寫兩個方法,用於加密和解密 public string base64encode string str 加密 public string base64...

Base64編碼演算法

base64要求把每三個8bit的位元組轉換為四個6bit的位元組 3 8 4 6 24 然 後把6bit再添兩位高位0,組成四個8bit的位元組,也就是說,轉換後的字串理 論上將要比原來的長1 3。轉換後,我們用乙個碼表來得到我們想要的字串 也就是最終的base64編碼 這個表是這樣的 0 a 1...