Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试使用 openssl 解码 base64 编码的字符串。但是,它在 5 次中只工作 4 次。
解码后的字符串应始终为 64 个字符长。BIO_read() 总是返回 64。但是,有时返回的缓冲区比 64 短!
有什么想法有什么问题吗?我怎样才能总是得到正确的字符串?
你在使用 str[n]cpy 吗?你不能!Base64 编码数据可以包含空字符,C 字符串处理函数将其解释为字符串结尾。
使用 memcpy 代替 str[n]cpy,memcmp 代替 strcmp 等。这些函数需要你知道你的数据大小,但我相信你确实知道。
此外,如果您对 C 风格的字符串等不是很有信心,这里有很多关于该主题的信息。