C 處理base64 以及base64的原理分析

2022-02-21 17:35:29 字數 1593 閱讀 7406

base64的原理,

base64的碼表只有64個字元, 如果要表達64個字元的話,使用6的bit即可完全表示(2的6次方為64)。

因為base64的編碼只有6個bit即可表示,而正常的字元是使用8個bit表示,8和6的最小公倍數是24,所以4個base64字元可以表示3個標準的ascll字元;

public void base64test()

因為3個ascii字元,才能和4個base64字元對應。如果ascii字元不足3個,即不足24bit。

從左往右,需要解析出至少4個字元,能解析的字元直接解析,無法解析的,直接用=表示。

n*8/6

比如單個字元a,轉換為base64。

單個字元a,1個位元組,8bit。

字元a的對應的ascii是十進位制是65, 二進位制是01000001。

按照6bit進行拆分,得到010000 01,只能解析出2個字元010000 010000,還缺少2個base64的字元,直接解析為=。

根據位元組陣列的長度,來計算加密後的字元長度,以及=的個數。

位元組陣列長度為39,13*4=52;

位元組陣列長度為40,40/3=13...1    13*4+4=56; 多出1個ascii字元,可以解析2個base64字元,還要補上2個=。   8*1/6向上取整,所以解析2個base64字元。

位元組陣列長度為41,41/3=13...2     13*4+4=56;多出2個ascii字元,可以解析3個base64字元,還要補上1個=。   8*2/6向上取整,所以解析出3個base64字元

base64的原理,

base64的碼表只有64個字元, 如果要表達64個字元的話,使用6的bit即可完全表示(2的6次方為64)。

因為base64的編碼只有6個bit即可表示,而正常的字元是使用8個bit表示,8和6的最小公倍數是24,所以4個base64字元可以表示3個標準的ascll字元;

public void base64test()

因為3個ascii字元,才能和4個base64字元對應。如果ascii字元不足3個,即不足24bit。

從左往右,需要解析出至少4個字元,能解析的字元直接解析,無法解析的,直接用=表示。

n*8/6

比如單個字元a,轉換為base64。

單個字元a,1個位元組,8bit。

字元a的對應的ascii是十進位制是65, 二進位制是01000001。

按照6bit進行拆分,得到010000 01,只能解析出2個字元010000 010000,還缺少2個base64的字元,直接解析為=。

根據位元組陣列的長度,來計算加密後的字元長度,以及=的個數。

位元組陣列長度為39,13*4=52;

位元組陣列長度為40,40/3=13...1    13*4+4=56; 多出1個ascii字元,可以解析2個base64字元,還要補上2個=。   8*1/6向上取整,所以解析2個base64字元。

位元組陣列長度為41,41/3=13...2     13*4+4=56;多出2個ascii字元,可以解析3個base64字元,還要補上1個=。   8*2/6向上取整,所以解析出3個base64字元

base64編碼 動畫演示 Base 64 編碼

base64 是一種十分流行的編碼方式,僅僅使用 64 個字元加等號 就可以以文字的形式表示所有的二進位制資料了,因為它能夠把二進位制格式通過編碼轉換成可見字元,所有我們就可以通過的把二進位制格式比如,檔案等通過 base64 編碼然後通過文字的形式共享出去,是不是很神奇呀。把輸入的資料轉換成 二進...

JS處理base64編碼

因為專案需求,需要處理base64編碼,再次記錄,便於之後呼叫 關於base64 base64的本質就是把每8位的ascii編碼變成另外乙個每6位的編碼,用另外乙個參照表進行對應翻譯。以下為base64的js var base64 else if code 0x0080 code 0x07ff el...

Base64編碼 C語言

密碼學課程結束了,想著盡可能的 把每種加密演算法都能用 實現一下。今天的是base64編碼是比較簡單的。1.首先就是將字串分組,按位進行分,每6位一組 不足6位的補上0.2.然後分別將6位 變成位元組的 形式,就是在每6位的前面加上 兩個0湊夠8位。3.然後在乙個列表中根據這個值作為 索引找到編碼後...