gpt4 book ai didi

c++ - Base64解码错误

转载 作者:行者123 更新时间:2023-11-30 05:33:33 24 4
gpt4 key购买 nike

使用 Boost C++ 库,我尝试使用以下代码对以下 base64 编码值进行 base64 解码:OTE4ZDUxYzM0ZTIyNmEzZDVmY2NjNjAyMzYyOTU5MTg0NzVmYWEwMjox:

std::string base64_decode(const std::string& s) {
namespace bai = boost::archive::iterators;

std::stringstream os;

typedef bai::transform_width<bai::binary_from_base64<const char *>, 8, 6> base64_dec;

unsigned int size = s.size();

// Remove the padding characters, cf. https://svn.boost.org/trac/boost/ticket/5629
if (size && s[size - 1] == '=') {
--size;
if (size && s[size - 1] == '=') --size;
}
if (size == 0) return std::string();

std::copy(base64_dec(s.data()), base64_dec(s.data() + size),
std::ostream_iterator<char>(os));

return os.str();

看起来编码正确,但是,在解码时,我仍然收到以下错误:在抛出 boost::archive::iterators::dataflow_exception what() 实例后调用终止:尝试解码 a值 不在 base64 字符集中 在该行:

std::copy(base64_dec(s.data()), base64_dec(s.data() + size), std::ostream_iterator<char>(os)); 

最佳答案

我没有评论的声誉,所以这是一个答案:

“attemp to decode a value not in base64 char set”听起来你应该验证函数的实际输入,对于给定的输入
OTE4ZDUxYzM0ZTIyNmEzZDVmY2NjNjAyMzYyOTU5MTg0NzVmYWEwMjox
你的代码有效:https://ideone.com/zWl52N

关于c++ - Base64解码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34727609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com