上一篇博客中分享的案例里面base64编码的工具函数单独拿出来分享一下,为不想自己写的大佬提供快捷的CV路径
const std::string base64_chars ="ABCDEFGHIJKLMNOPQRSTUVWXYZ""abcdefghijklmnopqrstuvwxyz""0123456789+/";std::string base64_encode(const std::string &input) {  std::string encoded;  size_t i = 0, j = 0;  uint8_t byte3[3] = {0};  uint8_t byte4[4] = {0};  // 遍历输入字符串中的每个字符  for (char byte : input) {  byte3[i++] = static_cast<uint8_t>(byte); // 假设输入是ASCII  if (i == 3) {  byte4[0] = (byte3[0] & 0xfc) >> 2;  byte4[1] = ((byte3[0] & 0x03) << 4) | ((byte3[1] & 0xf0) >> 4);  byte4[2] = ((byte3[1] & 0x0f) << 2) | ((byte3[2] & 0xc0) >> 6);  byte4[3] = byte3[2] & 0x3f;  // 添加编码后的字符到结果字符串  for (int k = 0; k < 4; k++) {  encoded += base64_chars[byte4[k]];  }  i = 0;  }  }  // 处理剩余字符(如果有)  if (i != 0) {  for (size_t k = i; k < 3; k++) {  byte3[k] = 0; // 填充剩余字节为0  }  // 执行编码,类似于前面的处理  byte4[0] = (byte3[0] & 0xfc) >> 2;  byte4[1] = ((byte3[0] & 0x03) << 4) | ((byte3[1] & 0xf0) >> 4);  byte4[2] = ((byte3[1] & 0x0f) << 2) | ((byte3[2] & 0xc0) >> 6);  // 添加编码后的字符到结果字符串  for (size_t k = 0; k < i + 1; k++) {  encoded += base64_chars[byte4[k]];  }  // 添加'='以填充到4的倍数  while (i++ < 3) {  encoded += '=';  }  }  std::cout << "base64 size:" << encoded.size() << std::endl;return encoded;  }