-5

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

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

有什么想法有什么问题吗?我怎样才能总是得到正确的字符串?

4

1 回答 1

4

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

使用 memcpy 代替 str[n]cpy,memcmp 代替 strcmp 等。这些函数需要你知道你的数据大小,但我相信你确实知道。

此外,如果您对 C 风格的字符串等不是很有信心,这里有很多关于该主题的信息。

于 2009-09-12T12:15:53.740 回答