我有一个BASE64编码字符串:
static const unsigned char base64_test_enc[] = "VGVzdCBzdHJpbmcgZm9yIGEgc3RhY2tvdmVyZmxvdy5jb20gcXVlc3Rpb24=";
它没有每72个字符的CRLF.
如何计算解码的消息长度?
好吧,base64代表4个字符的3个字节...所以从你开始只需要除以4并乘以3.
然后,您需要考虑填充:
如果文本结束,则"=="
需要减去2个字节(因为最后一组4个字符仅代表1个字节)
如果文本结束只"="
需要减去1个字节(因为最后一组4个字符代表2个字节)
如果文本根本没有填充结束,则不需要减去任何内容(因为最后一组4个字符代表正常的3个字节)