C++ Base64编码实例
时间: 2023-09-04 17:09:29 浏览: 101
下面是一个简单的 C++ Base64 编码实例:
```cpp
#include <iostream>
#include <string>
#include <vector>
const std::string base64_chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz"
"0123456789+/";
std::string base64_encode(const std::string &in) {
std::string out;
int val = 0, valb = -6;
for (unsigned char c : in) {
val = (val << 8) + c;
valb += 8;
while (valb >= 0) {
out.push_back(base64_chars[(val >> valb) & 0x3F]);
valb -= 6;
}
}
if (valb > -6) {
out.push_back(base64_chars[((val << 8) >> (valb + 8)) & 0x3F]);
}
while (out.size() % 4) {
out.push_back('=');
}
return out;
}
int main() {
std::string input = "Hello, world!";
std::string encoded = base64_encode(input);
std::cout << "Encoded string: " << encoded << std::endl;
return 0;
}
```
输出:
```
Encoded string: SGVsbG8sIHdvcmxkIQ==
```
解释一下代码:
- `base64_chars` 是 Base64 编码中使用的字符表。
- `base64_encode` 函数接受一个字符串作为输入,返回 Base64 编码后的字符串。
- 在 `base64_encode` 函数中,我们首先将输入字符串中的每个字符转换为其 ASCII 码值。然后将这些 ASCII 码值按照 8 位一组进行分组,并将每组转换为对应的 Base64 编码。最后,根据 Base64 编码规则,将编码后的字符串末尾不足 4 的倍数的部分用 '=' 补齐。
阅读全文