C 簡單實現BaseCode64編碼

2022-02-25 12:36:13 字數 2188 閱讀 2165

目前來看遇到過base 16、base 32、base 64的編譯碼,這種編碼格式是二進位制和文字編碼轉化,是對稱並且可逆的轉化。base 64總共有64個ascii碼字元,包括a-z,a-z,0-9,「+」和「/ 」。詳細介紹可以參考了這篇文章,對base 64的原理做了比較詳細的介紹。

base 64編碼的64個ascii字元需要6位資料,假設將二進位制

000000編碼為字元 『a』

000001編碼為字元 『b』

000010編碼為字元 『c』

(當然具體的編碼關係需要根據編碼表進行對映)

那麼乙個24 bit的二進位制資料

000001 000000 000000 000000

編碼後得到

baaa

不難發現base 64編碼是將3 x 8 bit的資料編碼為4 x 6 bit的資料,每個6 bit的資料通過編碼表的對映關係得到一串編碼後的字串。

如果遇到剩下的字元不足3個位元組,則用0填充,1個位元組或者2個位元組的情況,最後用『=』補齊

如下圖所示

如下 table是自定義的乙個編碼表,當然表中的字元順序不是固定,可以變換順序

C 簡單實現BaseCode64編碼

目前來看遇到過base 16 base 32 base 64的編譯碼,這種編碼格式是二進位制和文字編碼轉化,是對稱並且可逆的轉化。base 64總共有64個ascii碼字元,包括a z,a z,0 9,和 詳細介紹可以參考了這篇文章,對base 64的原理做了比較詳細的介紹。base 64編碼的64...

C語言base64演算法簡單實現

用過一段大家常用的base64 老是多一位少一位弄不清楚,一狠心自己動手重寫了一遍,寫完查詢了其他實現的 才發現其實精品很多,既然寫了就分享給可以用的上的朋友,寫 就要寫大家都能看的懂的 vc,gcc 編譯沒有問題 其中 buf base64 是把一般buf 轉為base64碼,base64 buf...

BASE64編譯碼簡單實現

base64 是一種基於64個可列印字元來表示二進位制資料的表示方法。其原理很簡單,64 2 6,因此這64個可列印字元可以與0x00 0x3f一一對應。這樣每個位元組只用到了低6位,高兩位為0.那麼在原編碼中3個位元組 24位 可以用base64的四個位元組表示。base64常用於在通常處理文字資...