Base64解码 - 字符串长度不正确

时间:2009-09-12 10:04:44

标签: c string openssl base64

我正在尝试使用openssl解码base64编码的字符串。但是,它只有5次有效。

解码后的字符串应始终为64个字符长。 BIO_read()总是返回64.但是,有时返回的缓冲区短于64!

任何想法有什么不对?我怎么能总是得到正确的字符串?

1 个答案:

答案 0 :(得分:4)

你正在使用str [n] cpy吗?你不能! Base64编码数据可以包含空字符,C字符串处理函数将其解释为字符串结尾。

使用memcpy而不是str [n] cpy,memcmp而不是strcmp等。这些功能要求您知道您的数据大小,但我相信您知道它。

另外,如果你对C风格的字符串不太自信,那么这里有很多关于这个主题的信息。