如何用C语言编写Base64编码和解码的函数实现?
时间: 2024-11-08 08:20:47 浏览: 36
在C语言中,可以使用一些库函数如`base64.h`或者自定义算法来实现Base64编码和解码。这里是一个简单的Base64编码和解码函数的示例,使用了开源的`libb64`库:
```c
#include <stdio.h>
#include "base64.h"
// Base64 编码
void base64_encode(char *input, char *output) {
uint8_t encoded[5];
b64_encode(encoded, input, strlen(input));
output = (char*) realloc(output, strlen((const char*)encoded) + 1);
strcpy(output, (const char*)encoded); // 注意将字节数组转换为字符串
}
// Base64 解码
void base64_decode(char *input, char *output) {
uint8_t decoded[B64_DECODE_LEN];
int len = b64_decode(decoded, input, strlen(input));
if (len > 0) {
output = (char*) realloc(output, len + 1);
memcpy(output, decoded, len);
output[len] = '\0'; // 添加终止符
}
}
int main() {
char input[] = "Hello, World!";
char output[strlen(input) * 1.3]; // 预留空间
// 编码
base64_encode(input, output);
printf("Encoded: %s\n", output);
// 解码
base64_decode(output, input);
printf("Decoded: %s\n", input);
return 0;
}
```
这个例子中,`b64_encode`和`b64_decode`函数分别负责Base64编码和解码,你需要从`libb64`库中包含相应的头文件并链接到你的程序。
请注意,这只是一个简化的版本,实际项目中可能需要处理错误边界、输入长度检查等细节,并且你可能需要自行下载和集成`libb64`库。
阅读全文