c php base64,C语言实现base64编码,base64解码
char?*base64_encode(char?*binData,?char?*base64,?int?binLength)
{
int?i?=?0;
int?j?=?0;
int?current?=?0;
for?(i?=?0;?i?
//獲取第一個(gè)6位
current?=?(*(binData+i)?>>?2)?&?0x3F;
*(base64?+?j++)?=?base64char[current];
//獲取第二個(gè)6位的前兩位
current?=?(*(binData+i)?<
//如果只有一個(gè)字符,那么需要做特殊處理
if?(binLength?<=?(i+1))?{
*(base64?+?j++)?=?base64char[current];
*(base64?+?j++)?=?'=';
*(base64?+?j++)?=?'=';
break;
}
//獲取第二個(gè)6位的后四位
current?|=?(*(binData+i+1)?>>?4?)?&?0xf;
*(base64?+?j++)?=?base64char[current];
//獲取第三個(gè)6位的前四位
current?=?(*(binData+i+1)?<
if?(binLength?<=?(i+2))?{
*(base64?+?j++)?=?base64char[current];
*(base64?+?j++)?=?'=';
break;
}
//獲取第三個(gè)6位的后兩位
current?|=?(*(binData+i+2)?>>?6)?&?0x03;
*(base64?+?j++)?=?base64char[current];
//獲取第四個(gè)6位
current?=?*(binData+i+2)?&?0x3F;
*(base64?+?j++)?=?base64char[current];
}
*(base64+j)?=?'\0';
return?base64;
}
char?*base64_decode(char?const?*base64Str,?char?*debase64Str,?int?encodeStrLen)
{
int?i?=?0;
int?j?=?0;
int?k?=?0;
char?temp[4]?=?"";
for?(i?=?0;?i?
for?(j?=?0;?j?
if?(*(base64Str?+?i)?==?base64char[j])?{
temp[0]?=?j;
}
}
for?(j?=?0;?j?
if?(*(base64Str?+?i?+?1)?==?base64char[j])?{
temp[1]?=?j;
}
}
for?(j?=?0;?j?
if?(*(base64Str?+?i?+?2)?==?base64char[j])?{
temp[2]?=?j;
}
}
for?(j?=?0;?j?
if?(*(base64Str?+?i?+?3)?==?base64char[j])?{
temp[3]?=?j;
}
}
*(debase64Str?+?k++)?=?((temp[0]?<>4)?&?0x03);
if?(?*(base64Str?+?i?+?2)??==?'='?)
break;
*(debase64Str?+?k++)?=?((temp[1]?<>2)?&?0x0F);
if?(?*(base64Str?+?i?+?3)?==?'='?)
break;
*(debase64Str?+?k++)?=?((temp[2]?<
}
return?debase64Str;
}
總結(jié)
以上是生活随笔為你收集整理的c php base64,C语言实现base64编码,base64解码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php5.2 get漏洞,ThinkPH
- 下一篇: php 重复写入数据,完美解决Think