linux环境如何把字符串做Base64转换
时间: 2024-01-02 15:02:02 浏览: 30
在 Linux 环境中,可以使用 base64 命令来将字符串进行 Base64 编码或解码。
将字符串编码为 Base64:
```
echo "Hello, world!" | base64
```
输出结果为:
```
SGVsbG8sIHdvcmxkIQo=
```
将 Base64 编码的字符串解码为原始字符串:
```
echo "SGVsbG8sIHdvcmxkIQo=" | base64 --decode
```
输出结果为:
```
Hello, world!
```
相关问题
linux环境下 字符串转int64_t
在 Linux 环境下,可以使用 `strtoll()` 函数将字符串转换为 `int64_t` 类型。`strtoll()` 函数的原型如下:
```c
#include <stdlib.h>
long long int strtoll(const char* nptr, char** endptr, int base);
```
其中,`nptr` 表示要转换的字符串,`endptr` 表示转换结束的位置,`base` 表示字符串所处的进制。如果转换成功,`strtoll()` 函数返回转换后的 `int64_t` 类型整数,如果转换失败,则返回 0。
下面是一个将字符串转换为 `int64_t` 类型的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main() {
char str[] = "9223372036854775807";
char* endptr;
int64_t num = strtoll(str, &endptr, 10);
if (endptr == str) {
printf("转换失败!\n");
} else {
printf("转换成功:%ld\n", num);
}
return 0;
}
```
在上面的示例代码中,我们将字符串 "9223372036854775807" 转换为 `int64_t` 类型整数,并将结果输出到终端上。如果转换成功,则输出转换后的数值;如果转换失败,则输出错误信息。
linux base64 转换函数
Linux中有一个命令行工具叫做base64,可以用来进行base64编码和解码操作。base64是一种将二进制数据转换成可打印字符的编码方式,常用于在网络传输中传递二进制数据或存储二进制数据。
在Linux中,可以使用以下命令进行base64编码和解码:
1. 编码:将二进制数据转换为base64编码字符串
```
echo -n "Hello, World!" | base64
```
输出结果为:
```
SGVsbG8sIFdvcmxkIQ==
```
2. 解码:将base64编码字符串转换为二进制数据
```
echo -n "SGVsbG8sIFdvcmxkIQ==" | base64 -d
```
输出结果为:
```
Hello, World!
```
除了命令行工具,Linux还提供了一些C语言库函数用于进行base64编码和解码操作。其中,`<openssl/bio.h>`头文件中的函数可以实现base64编码和解码。以下是一个示例代码:
```c
#include <stdio.h>
#include <openssl/bio.h>
#include <openssl/evp.h>
int main() {
const char* input = "Hello, World!";
int input_len = strlen(input);
// 编码
BIO* b64 = BIO_new(BIO_f_base64());
BIO* bio = BIO_new(BIO_s_mem());
bio = BIO_push(b64, bio);
BIO_write(bio, input, input_len);
BIO_flush(bio);
BUF_MEM* bptr;
BIO_get_mem_ptr(bio, &bptr);
printf("Base64 编码结果:%s\n", bptr->data);
// 解码
BIO* b64_decode = BIO_new(BIO_f_base64());
bio = BIO_new_mem_buf(bptr->data, bptr->length);
bio = BIO_push(b64_decode, bio);
char output[256];
int output_len = BIO_read(bio, output, input_len);
output[output_len] = '\0';
printf("Base64 解码结果:%s\n", output);
// 释放资源
BIO_free_all(bio);
return 0;
}
```
这段代码使用了OpenSSL库中的函数进行base64编码和解码操作。编码结果为`SGVsbG8sIFdvcmxkIQ==`,解码结果为`Hello, World!`。