11 int val = 0, valb = -6;
12 for (std::uint8_t c: in) {
16 out.push_back(
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(val >> valb) & 0x3F]);
20 if (valb > -6) out.push_back(
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[((val << 8) >> (valb + 8)) & 0x3F]);
21 while (out.size() % 4) out.push_back(
'=');
30 std::vector<int> T(256, -1);
31 for (
int i = 0; i < 64; i++) T[
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[i]] = i;
33 int val = 0, valb = -8;
34 for (std::uint8_t c: in) {
35 if (T[c] == -1)
break;
36 val = (val << 6) + T[c];
39 out.push_back(
char((val >> valb) & 0xFF));
static std::string base64Encode(const std::string &in)
Encodes string to base64.
static std::string base64Decode(const std::string &in)
Decodes base64 to string.