<<戻る

2004年08月31日

Base64エンコード・デコードを書いてみる

rawデータをASCII文字に変換してみる

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char chex2bin(char *src)
{
if ( src[0] != 0x33  && src[0] != 0x34 && src[0] != 0x36 )
return -1;

if ( src[0] == 0x33 )
{
if ( src[1] >= '0' && src[1] <= '9')
return src[1];
}
else 
{
if ( src[1] >= '1' && src[1] <= '6')
return src[1] + 0x10;
}
return -1;
}

int shex2bin(char *src, int len, char *dest)
{
int i;
char buf;
for ( i = 0; i < len; i += 2)
{
buf = chex2bin(src + i);
if ( buf == -1 )
return -1;
memset(dest, buf, 1);
dest++;
}
return 0;
}

int main(int argc, char *argv[])
{
char src[100]="61414243444546";
char buf[1024];
memset(buf, 0, sizeof(buf));


printf("%d\n", shex2bin(src, strlen(src), buf));

printf("%s\n", buf);

return 0;
} 

 

ASCII文字をrawデータに変換してみる

 

Base64エンコード・デコードを書いてみる