b64.c
1.0.0
Кодирование/декодирование Base64
$ clib install jwerle/b64.c
#include <b64/b64.h>
или
#include <b64.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "b64.h"
int
main ( void ) {
unsigned char * str = "brian the monkey and bradley the kinkajou are friends" ;
char * enc = b64_encode ( str , strlen ( str ));
printf ( "%sn" , enc ); // YnJpYW4gdGhlIG1vbmtleSBhbmQgYnJhZGxleSB0aGUga2lua2Fqb3UgYXJlIGZyaWVuZHM=
char * dec = b64_decode ( enc , strlen ( enc ));
printf ( "%sn" , dec ); // brian the monkey and bradley the kinkajou are friends
free ( enc );
free ( dec );
return 0 ;
}
Индексная таблица Base64
static const char b64_table [] = {
'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' ,
'I' , 'J' , 'K' , 'L' , 'M' , 'N' , 'O' , 'P' ,
'Q' , 'R' , 'S' , 'T' , 'U' , 'V' , 'W' , 'X' ,
'Y' , 'Z' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ,
'g' , 'h' , 'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
'o' , 'p' , 'q' , 'r' , 's' , 't' , 'u' , 'v' ,
'w' , 'x' , 'y' , 'z' , '0' , '1' , '2' , '3' ,
'4' , '5' , '6' , '7' , '8' , '9' , '+' , '/'
};
Кодируйте исходный код unsigned char *
с размером size_t
. Возвращает строку в кодировке char *
base64.
char *
b64_encode ( const unsigned char * , size_t );
Декодируйте источник char *
с размером size_t
. Возвращает строку unsigned char *
декодированную в base64.
unsigned char *
b64_decode ( const char * , size_t );
Массачусетский технологический институт