如何使用openssl进行base 64解码?

发布于 2024-09-08 17:30:00 字数 596 浏览 1 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蘸点软妹酱 2024-09-15 17:30:00

pff 抱歉我的错误。我忘记为 pOut 分配内存。该代码现在似乎可以工作。

pff sorry my mistake. I forgot to allocate memory for pOut. The code seems to work now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文