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' , '+' , '/'
};
使用size_t
大小對unsigned char *
來源進行編碼。傳回char *
base64 編碼的字串
char *
b64_encode ( const unsigned char * , size_t );
使用size_t
大小解碼char *
來源。傳回unsigned char *
base64 解碼的字串
unsigned char *
b64_decode ( const char * , size_t );
麻省理工學院