代码生成Linux下base64解码功能
时间: 2023-11-18 19:35:41 浏览: 27
可以使用openssl库中的base64命令进行解码,命令行格式如下:
openssl base64 -d -in input.txt -out output.txt
其中,input.txt为要解码的文件名,output.txt为解码后输出的文件名。如果要解码的是字符串,可以使用echo命令将字符串输入到base64命令中,如下:
echo "dGVzdA==" | openssl base64 -d
输出结果为: test
相关问题
写一个Linux下base64解码代码
好的,以下是Linux下的base64解码代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BASE64_ALPHABET "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
int base64_decode(char *src, char *dst, int len)
{
int i, j, k, n;
char *p;
if (len % 4 != 0) {
return -1;
}
p = dst;
for (i = 0; i < len; i += 4) {
k = 0;
for (j = 0; j < 4; j++) {
n = strchr(BASE64_ALPHABET, src[i+j]) - BASE64_ALPHABET;
if (n < 0 || n > 63) {
return -1;
}
k = (k << 6) | n;
}
*p++ = (k >> 16) & 0xff;
*p++ = (k >> 8) & 0xff;
*p++ = k & 0xff;
}
return p - dst;
}
int main()
{
char *src = "SGVsbG8gV29ybGQh"; // "Hello World!"
char dst[100] = {0};
int len;
len = base64_decode(src, dst, strlen(src));
if (len < 0) {
printf("Invalid base64 string\n");
return -1;
}
printf("%s\n", dst);
return 0;
}
```
希望能帮到你!接下来你可以问我其他问题。
写一个Linux下包含中文的base64解码代码
好的,以下是在Linux下包含中文的base64解码代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/bio.h>
#include <openssl/evp.h>
char* base64_decode(const char* input, int length) {
BIO* b64 = BIO_new(BIO_f_base64());
BIO* bmem = BIO_new(BIO_s_mem());
BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
BIO_push(b64, bmem);
BIO_write(bmem, input, length);
BIO_flush(bmem);
char* output = (char*)malloc(length);
int len = BIO_read(b64, output, length);
output[len] = '\0';
BIO_free_all(b64);
return output;
}
int main() {
char input[] = "5oiR5piv5L2g5aW977yM5Lu25oiW55qE5ZCM6K6k5L2V5LiA5Liq5o6o5Lya5YWo5L2c5oiQ5YyW5Y+K5Lq65Lq66K+V5pWw5YyX";
char* output = base64_decode(input, strlen(input));
printf("Decoded text: %s\n", output);
free(output);
return 0;
}
```
请问还有其他问题吗?