#ifndef _BASE64_H_ #define _BASE64_H_ #include #include /** * @brief Base64编码 * @param input 输入数据 * @param input_length 输入数据长度 * @param output 输出缓冲区(需要预分配足够空间) * @return 编码后的字符串长度 * * 注意:output缓冲区大小至少需要 ((input_length + 2) / 3) * 4 + 1 字节 */ uint32_t base64_encode(const uint8_t* input, uint32_t input_length, char* output); /** * @brief Base64解码 * @param input 输入Base64字符串 * @param input_length 输入字符串长度 * @param output 输出缓冲区 * @return 解码后的数据长度 */ uint32_t base64_decode(const char* input, uint32_t input_length, uint8_t* output); /** * @brief 计算Base64编码后的长度 * @param input_length 输入数据长度 * @return 编码后的长度(不含结束符) */ #define BASE64_ENCODE_SIZE(len) (((len) + 2) / 3 * 4) #endif // _BASE64_H_