我有一个 BASE64 编码字符串:
static const unsigned char base64_test_enc[] =
"VGVzdCBzdHJpbmcgZm9yIGEgc3RhY2tvdmVyZmxvdy5jb20gcXVlc3Rpb24=";
它没有 CRLF-per-72 字符。
如何计算解码后的消息长度?
最佳答案
好吧,base64 表示 4 个字符中的 3 个字节...所以开始时,您只需除以 4 再乘以 3。
然后您需要考虑 padding :
- 如果文本以
“==”
结尾则需要减去2个字节(因为最后一组4个字符只代表1个字节) - 如果文本仅以
"="
结尾,则需要减去 1 个字节(因为最后一组 4 个字符代表 2 个字节) - 如果文本根本没有以填充结尾,则不需要减去任何内容(因为最后一组 4 个字符代表正常的 3 个字节)
关于c++ - 计算 Base64 编码消息的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546498/