- 论坛徽章:
- 0
|
回复 3楼 柳五随风 的帖子
又查到些资料是有关
MIME之Base64编解码
- int DecodeBase64(const char* pSrc, unsigned char* pDst, int nSrcLen)
- {
- int nDstLen; // 输出的字符计数
- int nValue; // 解码用到的长整数
- int i;
-
- i = 0;
- nDstLen = 0;
-
- // 取4个字符,解码到一个长整数,再经过移位得到3个字节
- while (i < nSrcLen)
- {
- if (*pSrc != '\r' && *pSrc!='\n')
- {
- nValue = DeBase64Tab[*pSrc++] << 18;
- nValue += DeBase64Tab[*pSrc++] << 12;
- *pDst++ = (nValue & 0x00ff0000) >> 16;
- nDstLen++;
-
- if (*pSrc != '=')
- {
- nValue += DeBase64Tab[*pSrc++] << 6;
- *pDst++ = (nValue & 0x0000ff00) >> 8;
- nDstLen++;
-
- if (*pSrc != '=')
- {
- nValue += DeBase64Tab[*pSrc++];
- *pDst++ =nValue & 0x000000ff;
- nDstLen++;
- }
- }
-
- i += 4;
- }
- else // 回车换行,跳过
- {
- pSrc++;
- i++;
- }
- }
-
- // 输出加个结束符
- *pDst = '\0';
-
- return nDstLen;
- }
复制代码 |
|