Base64編碼 C語言

2021-10-07 18:27:29 字數 1037 閱讀 3127

密碼學課程結束了,想著盡可能的 把每種加密演算法都能用** 實現一下。

今天的是base64編碼是比較簡單的。

1.首先就是將字串分組,按位進行分,每6位一組;不足6位的補上0.

2.然後分別將6位 變成位元組的 形式,就是在每6位的前面加上 兩個0湊夠8位。

3.然後在乙個列表中根據這個值作為 索引找到編碼後的字元。

q:整體上是輸入的字串3個位元組一組,然後根據位,每6位 代表乙個字元,然後轉換成 位元組,變成編碼後的4個位元組一組。 如果不能恰好按照3個位元組轉換成 編碼後的4個位元組, 就要在編碼後的位元組補上=,使其 湊夠4個位元組一組。

; //3-->4

//base64編碼是根據字串的長度進行分割的,首先3個一組就是24位 再將24位以6位進行分割,前面補上兩個0,保證組成的新的八位範圍是0-63,然後根據此索引在上面的陣列進行查詢

//如果待處理的字串不能恰好3個一組需要進行補位。首先按照原字串進行原規則進行編碼,編碼後發現不足4位元組就會補=號

//6-x%6確定補0的個數

// char* base64(char *str,int strlen,int n_zero);

int main()

char* base64(char *str,int strlen,int n_zero)//str是原字串,strlen是原字串的長度,第三個引數是需要補的0的個數

else

// // 下面是進行位的轉換

//

for(i=0;i=0;j--)//6bit轉向8bit

temp[i]=list[temp[i]];//對映

}//

// 6位轉8位成功,然後就是涉及到關於=號的新增 ,4-x%4

// if(((strlen*8+n_zero)/6)%4)

for(i=(strlen*8+n_zero)/6;i<(strlen*8+n_zero)/6+4-((strlen*8+n_zero)/6)%4;i++)

temp[i]='=';

return temp;

}

base64編碼 動畫演示 Base 64 編碼

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

Base64編碼演算法

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

Base64編碼演算法

base64 construe aaaaaaaa bbbbbbbb cccccccc dddddddd ffffffff 3byte to 4byte is encode 00aaaaaa 00aabbbb 00bbbbcc 00cccccc 3byte newlen 4 00aaaaaa 00aa...