溫馨提示×

如何使用C++庫進(jìn)行base64編碼和解碼的測試

c++
小樊
90
2024-08-11 11:03:36
欄目: 編程語言

要使用C++庫進(jìn)行base64編碼和解碼的測試,您可以使用現(xiàn)有的庫,例如Boost庫中的base64編碼和解碼功能。以下是一個(gè)簡單的示例代碼,演示如何使用Boost庫進(jìn)行base64編碼和解碼的測試:

#include <iostream>
#include <boost/archive/iterators/base64_from_binary.hpp>
#include <boost/archive/iterators/binary_from_base64.hpp>
#include <boost/archive/iterators/transform_width.hpp>

int main() {
    std::string originalData = "Hello, World!";
    
    // Base64編碼
    std::string encodedData;
    typedef boost::archive::iterators::base64_from_binary<boost::archive::iterators::transform_width<std::string::const_iterator, 6, 8>> base64_enc;
    std::stringstream ss;
    std::copy(base64_enc(originalData.begin()), base64_enc(originalData.end()), std::ostream_iterator<char>(ss));
    encodedData = ss.str();
    
    std::cout << "Base64 Encoded Data: " << encodedData << std::endl;
    
    // Base64解碼
    std::string decodedData;
    typedef boost::archive::iterators::transform_width<boost::archive::iterators::binary_from_base64<std::string::const_iterator>, 8, 6> base64_dec;
    std::stringstream ds;
    std::copy(base64_dec(encodedData.begin()), base64_dec(encodedData.end()), std::ostream_iterator<char>(ds));
    decodedData = ds.str();
    
    std::cout << "Base64 Decoded Data: " << decodedData << std::endl;
    
    return 0;
}

在這個(gè)示例代碼中,我們首先定義了一個(gè)原始數(shù)據(jù)originalData,在對原始數(shù)據(jù)進(jìn)行base64編碼和解碼后,輸出編碼和解碼后的數(shù)據(jù)。您可以通過編譯并運(yùn)行這段代碼,測試Boost庫中的base64編碼和解碼功能。

0