C++实现 base64 字符串编码解码(GCC编译)。
1 /** 2 * @brief C++ base64 编解码 3 * @author wid 4 * @date 2013-20-25 5 * 6 * @note 若代码存在 bug 或程序缺陷, 请留言反馈, 谢谢! 7 */ 8 9 #include <iostream> 10 #include <string> 11 #include <ctime> 12 13 //base64 编解码函数声明 14 std::string b64encodestring(const std::string &strString); //对 ASCII 字符串进行 base64 编码 15 std::string b64decodestring(const std::string &strString); //对 base64 编码后的字符串进行解码 16 17 //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) 28 { 29 int nByteSrc = strString.length(); 30 std::string pszSource = strString; 31 32 int i = 0; 33 for(i; i < nByteSrc; i++) 34 if( pszSource[i] < 0 || pszSource[i] > 127 ) 35 throw "can not encode Non-ASCII characters"; 36 37 const char *enkey = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 38 std::string pszEncode(nByteSrc*4/3 + 4, '