
30.08.2007, 15:40
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
С нами:
10140806
Репутация:
932
|
|
Код:
const char b64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
//-----------------------------------------------------------------
void Base64Encode(char *buf, char *obuf, int len){
int i;
for(i=0; i<len-2; i+=3){
*obuf++ = b64[(buf[i]>>2) & 0x3F];
*obuf++ = b64[((buf[i] & 0x3)<<4 | ((int)(buf[i+1] & 0xF0)>>4))];
*obuf++ = b64[((buf[i+1] & 0xF)<<2) | ((int)(buf[i+2] & 0xC0)>>6)];
*obuf++ = b64[buf[i+2] & 0x3F];
}
if(i<len){
*obuf++ = b64[(buf[i]>>2) & 0x3F];
if(i == (len-1)){
*obuf++ = b64[((buf[i] & 0x3)<<4)];
*obuf++ = '=';
}else{
*obuf++ = b64[((buf[i] & 0x3)<<4 | ((int)(buf[i+1] & 0xf0)>>4))];
*obuf++ = b64[((buf[i+1] & 0xf)<<2)];
}
*obuf++ = '=';
}
*obuf++ = '\0';
}
|
|
|