切换主题
使用C++完成Base64编码
本文档介绍如何在C++中实现Base64编码功能。
Base64编码简介
Base64是一种基于64个可打印字符来表示二进制数据的编码方式,常用于在文本环境中传输二进制数据。
实现步骤
1. 引入必要的头文件
在C++代码中,需要以下头文件:
cpp
#include <string>
1
2. 定义Base64字符表
Base64编码需要一个字符表:
cpp
const std::string base64_chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789+/";
1
2
3
4
2
3
4
3. 编写编码函数
以下是实现Base64编码的函数:
cpp
std::string base64_encode(const std::string &input) {
std::string output;
int val = 0, valb = -6;
for (unsigned char c : input) {
val = (val << 8) + c;
valb += 8;
while (valb >= 0) {
output.push_back(base64_chars[(val >> valb) & 0x3F]);
valb -= 6;
}
}
if (valb > -6) {
output.push_back(base64_chars[((val << 8) >> (valb + 8)) & 0x3F]);
}
while (output.size() % 4) {
output.push_back('=');
}
return output;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
4. 测试编码函数
以下是测试代码:
cpp
#include <iostream>
int main() {
std::string input = "Hello, World!";
std::string encoded = base64_encode(input);
std::cout << "Original: " << input << std::endl;
std::cout << "Encoded: " << encoded << std::endl;
return 0;
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
示例输出
运行上述代码后,输出如下:
Original: Hello, World!
Encoded: SGVsbG8sIFdvcmxkIQ==
1
2
2
注意事项
- 输入数据长度不是3的倍数时,Base64编码会在末尾填充
=
符号。 - 确保输入数据为ASCII或UTF-8编码,避免编码错误。