C Base64 編碼 解碼

2021-09-06 12:29:08 字數 2097 閱讀 7218

c++實現 base64 字串編碼解碼(gcc編譯)。

1/**

2* @brief c++ base64 編譯碼

3* @author wid

4* @date 2013-20-255*

67*/8

9 #include 10 #include

11 #include 12

13//

base64 編譯碼函式宣告

14 std::string b64encodestring(const std::string &strstring); //

對 ascii 字串進行 base64 編碼

15 std::string b64decodestring(const std::string &strstring); //

對 base64 編碼後的字串進行解碼

1617

//base64 編譯碼函式實現

18/**19

* @brief 對 ascii 字串進行 base64 編碼20*

21* @param strstring 待編碼的字串22*

23* @return srs::string 返回編碼後的字串24*

25* @note 對於字串中含有非 ascii 字串型的字元, **將丟擲 std::string 型異常, 請捕獲

26*/

27 std::string b64encodestring(const std::string &strstring)

2849

50switch(nbytesrc%3)51

7273

return

pszencode.c_str();74}

7576/**

77* @brief 對 base64 編碼後的字串進行解碼78*

79* @param strstring 待解碼的字串80*

81* @return std::string 返回解碼後的字串82*

83* @note 對於非base64編碼的字串或已損壞的base64字串進行解碼會丟擲 std::string 型異常, 請捕獲

84*/

85 std::string b64decodestring(const std::string &strstring)86;

104105

if(nbytesrc%4 != 0

)106

throw

"bad base64 string";

107108 std::string pszdecode(nbytesrc*3/4+4, '\0'

);109

int nloop = pszsource[nbytesrc-1] == '

=' ? nbytesrc - 4

: nbytesrc;

110int b[4

];111

int i = 0, n = 0

;112

for(i = 0; i < nloop; i += 4

)113

125126

if( pszsource[nbytesrc-1] == '

=' && pszsource[nbytesrc-2] == '='

)127

135136

if( pszsource[nbytesrc-1] == '

=' && pszsource[nbytesrc-2] != '='

)137

147148

if( pszsource[nbytesrc-1] != '

=' && pszsource[nbytesrc-2] != '='

)149 pszdecode[n] = '\0'

;150

151return

pszdecode;

152}

153154

//測試

155int

main()

156

執行測試結果:

C Base64解碼小工具編寫

1 介面如下 2 關鍵 如下 var reqstr txtinput.text.trim 輸入字串 var resstr 輸出結果 var errmsg if reqstr.length 0 catch exception ex catch exception ex2 view code 說明 2....

c base64演算法解密

將字串使用base64演算法加密 編碼型別 編碼名稱 頁 名稱 1200 utf 16le utf 16 ucs 2 unicode 或 iso 10646 ucs 2 1201 將字串使用base64演算法加密 編碼型別 編碼名稱 頁 名稱 1200 utf 16le utf 16 ucs 2 u...

C base64 加密解密

base64加密 加密採用的編碼方式 待加密的明文 public static string encodebase64 encoding encode,string source catch return str base64加密,採用utf8編碼方式加密 待加密的明文 加密後的字串 public ...