Base64编码解码实现
string Base64::EncodeBase64(char const * sourcebuf,int buflen)
{
string ret;
unsigned char split3[3];
unsigned int split4[4];
int len = buflen;
int i=0;
while(len--)
{
split3[i++] = *(sourcebuf++);
if(i==3)
{
//第一个字节取前6位并将其右移2位
split4[0] = (split3[0]&0xfc) >> 2;
//第一个字节取后2位并左移4位 + 第二个字节取前4位并右移4位
split4[1] = ((split3[0]&0x03)<<4) + ((split3[1]&0xf0)>>4);
//第二个字节取后4位并左移2位 + 第三个字节取前2位并右移6位
split4[2] = ((split3[1]&0x0f)<<2)+((split3[2]&0xc0)>>6);
//第三个字节取后六位并且无需移位
split4[3] = (split3[2]&0x