上一节详细的解释了编码的过程,本节将介绍一下解码的过程。可以说解码就是编码的你过程,具体的代码如下:
int FindPos(const char needChar)
{//base64的ascii表和一般的ascii表不同
const char *chKey = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";//base64的ascii表
for (int i=0;i<64;++i)
{
if (needChar == chKey[i])
{
break;
}
}
return i;
}
std::string Basic_64::GetPeriorStr(std::string& readyChangeStr)
{//解码的过程只是编码的逆过程
if (readyChangeStr.empty())
{
return "";
}
/**************************
如果遇到==,就不用处理该字节,处理其余的字节即可
**************************/
std::string sNeedString=readyChangeStr;//保留原来的字符串(不能改变用户传递的参数)
while(sNeedString.find("=")!=-1)
{
sNeedString.replace(sNeedString.length()-1,sNeedString.length()-1,"");
}
int stringLen=sNeedString.length();
if (stringLen <= 0)
{
return "";
}
char tempchar=