如何通过boost property_tree加密xml文件?

时间:2014-09-11 10:37:10

标签: c++ xml encryption boost

现在我想通过Boost ptree生成一个加密的XML文件。

    using boost::property_tree::ptree;
    ptree   pt;

    pt.add("License.Unalterable.Signed.Guid", m_Guid);
    pt.add("License.Unalterable.Signed.CustomerId", m_CustomerId);
    pt.add("License.Unalterable.Signed.Name", m_Name);
    pt.add("License.Unalterable.Signed.Version", m_version);

    write_xml(licenseFileName, pt);

我希望在调用write_xml()之前加密整个xml文件。通过阅读write_xml的代码,我知道xml节点是从ptree逐个读取的,然后一个接一个地将它们写入fstream有没有办法在将整个xml数据流写入文件之前获取整个xml数据流?以便我可以加密整个数据流,然后将它们写入文件。

目前,我的解决方案是在write_xml创建后重新读取此xml文件,然后在加密xml内容后将其写回。

1 个答案:

答案 0 :(得分:3)

评论者建议:

std::ostringstream oss;
write_xml(oss, pt);

// now you can encrypt
std::string plain_text = oss.str();

现在您可以加密明文并将密文写入文件