MFC base64编解码
时间: 2023-07-07 08:38:15 浏览: 299
MFC 中可以使用 CryptEncodeObject 和 CryptDecodeObject 函数对 Base64 进行编解码。以下是一个简单的示例代码:
```cpp
// Base64 编码
CString EncodeBase64(const CString& str)
{
DWORD dwSize = 0;
CryptBinaryToString((BYTE*)str.GetString(), str.GetLength(), CRYPT_STRING_BASE64, NULL, &dwSize);
LPSTR lpstr = new CHAR[dwSize];
CryptBinaryToString((BYTE*)str.GetString(), str.GetLength(), CRYPT_STRING_BASE64, lpstr, &dwSize);
CString result(lpstr, dwSize);
delete[] lpstr;
return result;
}
// Base64 解码
CString DecodeBase64(const CString& str)
{
DWORD dwSize = 0;
CryptStringToBinary(str, 0, CRYPT_STRING_BASE64, NULL, &dwSize, NULL, NULL);
LPBYTE lpbyte = new BYTE[dwSize];
CryptStringToBinary(str, 0, CRYPT_STRING_BASE64, lpbyte, &dwSize, NULL, NULL);
CString result((LPCTSTR)lpbyte, dwSize);
delete[] lpbyte;
return result;
}
```
使用时可以这样调用:
```cpp
CString str = "Hello, world!";
CString encodedStr = EncodeBase64(str);
CString decodedStr = DecodeBase64(encodedStr);
```
其中 `str` 是待编码的字符串,`encodedStr` 是编码后的字符串,`decodedStr` 是解码后的字符串。