int change(char ch) //解码表转换 转成2进制 由于小于64 所以最多6位二进制
{
if( ch>='A'&&ch<='Z' )
return ch-'A';
if( ch>='a'&&ch<='z' )
return ch-'a'+26;
if( ch>='0'&&ch<='9' )
return ch-'0'+52;
if( ch=='+' )
return 62;
else
return 63;
}
void base64(char str[],int len) //将6位变成8位 不够从下一个数二进制补上
{ //最后一个数位数不够 在末尾补上0 凑出8位二进制
int t=0; //将8位变成ASCII对应的值 输出 解码完成
for(int i=0; i<len; i+=4)
{
s[t++]=((str[i]<<2)|(str[i+1]>>4));
if(i+2 < len)
s[t++]=((str[i+1]<<4)|(str[i+2]>>2));
if(i+3 < len)
s[t++]= ((str[i+2]<<6)|str[i+3]);
}
tot=t;
}
Base64_解码 C
最新推荐文章于 2024-06-06 21:23:40 发布