原文:http://blog.csdn.net/chenxiaohua/archive/2009/04/16/4084602.aspx
概述:base64可以将不可显示的编码转换成可显示的编码,以便于存储。
比如http一般传输的是文本格式的报文,如果要传输图片,那么就要先将图片编码成base64的报文传输,然后在客客户端显示的时候,将base64的报文解密,转换成二进制的图片数据显示。
下面给出源代码,可以直接在linux,msvc环境下进行编译。
- #ifndef ___BASE64_H___
- #define ___BASE64_H___
- #include <string>
- using namespace std;
- class CBase64
- {
- public:
- CBase64();
- ~CBase64();
- /*********************************************************
- * 函数说明:将输入数据进行base64编码
- * 参数说明:[in]pIn 需要进行编码的数据
- [in]uInLen 输入参数的字节数
- [out]strOut 输出的进行base64编码之后的字符串
- * 返回值 :true处理成功,false失败
- * 作 者 :ChenLi
- * 编写时间:2009-02-17
- **********************************************************/
- bool static Encode(const unsigned char *pIn, unsigned long uInLen, string& strOut);
- /*********************************************************
- * 函数说明:将输入数据进行base64编码
- * 参数说明:[in]pIn 需要进行编码的数据
- [in]uInLen 输入参数的字节数
- [out]pOut 输出的进行base64编码之后的字符串
- [out]uOutLen 输出的进行base64编码之后的字符串长度
- * 返回值 :true处理成功,false失败
- * 作 者 :ChenLi
- * 编写时间:2009-02-17
- **********************************************************/
- bool static Encode(const unsigned char *pIn, unsigned long uInLen, unsigned char *pOut, unsigned long *uOutLen);
- /*********************************************************
- * 函数说明:将输入数据进行base64解码
- * 参数说明:[in]strIn 需要进行解码的数据
- [out]pOut 输出解码之后的节数数据
- [out]uOutLen 输出的解码之后的字节数长度
- * 返回值 :true处理成功,false失败
- * 作 者 :ChenLi
- * 编写时间:2009-02-17
- **********************************************************/
- bool static Decode(const string& strIn, unsigned char *pOut, unsigned long *uOutLen) ;
- /*********************************************************
- * 函数说明:将输入数据进行base64解码
- * 参数说明:[in]strIn 需要进行解码的数据
- [out]pOut 输出解码之后的节数数据
- [out]uOutLen 输出的解码之后的字节数长度
- * 返回值 :true处理成功,false失败
- * 作 者 :ChenLi
- * 编写时间:2009-02-17
- **********************************************************/
- bool static Decode(const unsigned char *pIn, unsigned long uInLen, unsigned char *pOut, unsigned long *uOutLen) ;
- };
- #endif // ___BASE64_H___
#include "CBase64.h"
static const char *g_pCodes =
static const unsigned char g_pMap[256] =
{
};
CBase64::CBase64()
{
}
CBase64::~CBase64()
{
}
bool CBase64::Encode(const unsigned char *pIn, unsigned long uInLen, unsigned char *pOut, unsigned long *uOutLen)
{
}
bool CBase64::Encode(const unsigned char *pIn, unsigned long uInLen, string& strOut)
{
}
bool CBase64::Decode(const string& strIn, unsigned char *pOut, unsigned long *uOutLen)
{
}
// BASE64.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "CBase64.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
}