实现自定义std :: string以实时加密和解密字符串

时间:2017-12-15 08:38:05

标签: c++ stl std stdstring

我正在开发一个项目,其中所有字符串都必须在内存中加密(AES或任何其他加密算法)(内存转储保护),并且还必须支持各种操作,例如assign()operator+=等。

在我的实施研究中,我遇到了几个解决方案;一些提到继承自std :: string(std :: basic_string)但未能提供std::string缺少虚拟析构函数的解决方法,并且还没有为我的目的覆盖任何虚函数。提到的另一个解决方案是覆盖其模板默认参数并提供自定义allocatorchar traits。在检查给定的解决方案时。虽然当时看起来很有希望。我有几个问题要正确覆盖以下功能:

  1. 分配器::分配
  2. 的std :: char_traits ::复制
  3. 因为使用解密字符串的allocate值调用strlen,所以感觉就像需要一个额外的函数来首先计算加密字符串的大小,然后再分配它。

    使用给定的c ++ 11实现这样的事情是否合理?到目前为止,我没有通过网络找到任何可行的解决方案。

    我的最后一个选择是简单地用我自己的自定义类包装std :: string并提供自适应功能。 operator+=assignc_str()..

    谢谢!

    编辑:

    1. std::string str = "Hello World",会使std :: string'成员_Bx的加密字符串为" Hello World"

    2. 将删除c_str()或data()的任何用法。

0 个答案:

没有答案