28 lines
903 B
C++
28 lines
903 B
C++
#pragma once
|
|
#include <string>
|
|
using namespace std;
|
|
|
|
class Base64
|
|
{
|
|
public:
|
|
static string EncodeF2S(CFile *pFile);
|
|
static string Encode(const char *pBuffer, const ULONGLONG &length);
|
|
static string Encode(const string &plaintext);
|
|
static string Decode(const string &ciphertext);
|
|
static ULONGLONG Decode(const string &ciphertext, char *&pBuffer);
|
|
static ULONGLONG DecodeS2F(const string &ciphertext, CFile *pFile);
|
|
|
|
public:
|
|
/*注意:
|
|
plaintext 会在内部转成 utf-8 格式进行base64编码
|
|
ciphertext 实际上是ANSII编码,会在内部转为ANSII码
|
|
*/
|
|
static wstring Encode(const wstring &plaintext);
|
|
static wstring Decode(const wstring &ciphertext);
|
|
static wstring EncodeF2W(CFile *pFile);
|
|
static ULONGLONG DecodeW2F(const wstring &ciphertext, CFile *pFile);
|
|
|
|
static std::string unicode2Ansii(LPCTSTR psz, const DWORD &codePage);
|
|
static std::wstring ansii2Unicode(LPCSTR psz, const DWORD &codePage);
|
|
};
|