如何使用openssl进行base 64解码?
我正在使用 Boost.Asio 在 C++ 中进行开发。我希望能够对数据进行 Base64 解码,并且由于 Boost.Asio 链接到 openssl,我想使用它的函数来执行此操作,而不添加额外的依赖项(例如 crypto++)。我在此处找到了显示如何执行此操作的代码。 (将 int FinalLen = BIO_read(bmem, (void*)pOut, outLen); 更改为 inLen )
我不知道它是否有效。我只是将一些测试数据传递给它,并使用此处找到的在线解码器进行验证(2)(选择安全地解码为文本并计算符号数)。我使用的测试字符串是这样的:“AAAAAAAAAAAAAAAAAAAAAAAAAAA=”(没有“”)。在线解码器和快速 crypto++ 实现都返回 23 个字符。但是我上面提到的使用 openssl 的代码返回 0。我做错了什么吗? openssl适合base64解码吗? 请为我提供一个解决方案(如果存在)。谢谢你的时间。
I am developing in C++ using Boost.Asio. I want to be able to base64 decode data and since Boost.Asio links to openssl I want to use it's functions to do so and not add an extra dependency(eg crypto++). I have found this code here that shows how to do it. (change int finalLen = BIO_read(bmem, (void*)pOut, outLen); to inLen )
I don't know if it works. I just pass to it some test data that I verify with an online decoder found here(2) (select decode safely as text and count the symbols). The test string I use is this one: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" (without the ""). Both the online decoder and a quick crypto++ implementation return 23 chars. But the code I mentioned above using openssl returns 0. Am I doing something wrong? Is openssl suitable for base64 decoding?
Please provide me a solution (if one exists). Thanks for you time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
pff 抱歉我的错误。我忘记为 pOut 分配内存。该代码现在似乎可以工作。
pff sorry my mistake. I forgot to allocate memory for pOut. The code seems to work now.