c语言base64解码脚本
时间: 2023-11-22 15:44:24 浏览: 133
c语言实现base64编解码
好的,以下是一个简单的C语言实现的Base64解码脚本:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char base64_table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
int base64_decode(const char *input, unsigned char *output) {
int i, j, len = strlen(input), padding = 0;
unsigned char a, b, c, d;
if (len % 4 != 0) {
return -1;
}
if (input[len - 1] == '=') {
padding++;
}
if (input[len - 2] == '=') {
padding++;
}
for (i = 0, j = 0; i < len; i += 4, j += 3) {
a = strchr(base64_table, input[i]) - base64_table;
b = strchr(base64_table, input[i + 1]) - base64_table;
c = strchr(base64_table, input[i + 2]) - base64_table;
d = strchr(base64_table, input[i + 3]) - base64_table;
output[j] = (a << 2) | (b >> 4);
if (c != 64) {
output[j + 1] = ((b & 15) << 4) | (c >> 2);
}
if (d != 64) {
output[j + 2] = ((c & 3) << 6) | d;
}
}
return j - padding;
}
int main() {
const char *input = "SGVsbG8gV29ybGQh";
unsigned char output[100];
int len = base64_decode(input, output);
printf("%.*s\n", len, output);
return 0;
}
```
这个脚本可以将Base64编码的字符串解码成原始的二进制数据,并输出到一个缓冲区中。你可以根据需要修改缓冲区的大小。
阅读全文