2024-04-19 04:11:08 发布
网友
在python上执行以下操作:
encoded = base64.b32encode("1ACC64E9510C32CE8E34".decode('hex'))
我得到DLGGJ2KRBQZM5DRU。使用Crypto++时:
DLGGJ2KRBQZM5DRU
我得到DMGGJ4MTBS3N7DTW哪个是错的。在
DMGGJ4MTBS3N7DTW
有没有一种方法可以用c++对上面的字符串进行编码并得到与python相同的结果?在
我找到了完美的解决方案github
static const CryptoPP::byte ALPHABET[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; // Most libraries use RFC4648. const std::string decode( const std::string& encoded ) { std::string decoded; static int decoding_array[256]; CryptoPP::Base32Decoder::InitializeDecodingLookupArray(decoding_array, ALPHABET, 32, true); // false = case insensitive CryptoPP::Base32Decoder b32decoder; CryptoPP::AlgorithmParameters dp = CryptoPP::MakeParameters( CryptoPP::Name::DecodingLookupArray(), (const int *)decoding_array, false); b32decoder.IsolatedInitialize(dp); b32decoder.Attach( new CryptoPP::StringSink( decoded ) ); b32decoder.Put( (std::uint8_t*)encoded.c_str(), encoded.size() ); b32decoder.MessageEnd(); return decoded; }
我希望投我一票的人也能看到这一点。 作为一个整体,我对crypto++和密码学非常陌生。在
我找到了完美的解决方案github
我希望投我一票的人也能看到这一点。 作为一个整体,我对crypto++和密码学非常陌生。在
相关问题 更多 >
编程相关推荐