安全清除 std::string 中的敏感数据
在内存中存储敏感数据(例如密码)需要安全清除机制来防止潜在的内存泄漏。虽然 char* 数组为此目的提供了 SecureZeroMemory API,但使用 std::string 提出了实现类似解决方案的问题。
std::string 的挑战
有人尝试创建一个自定义分配器,在释放时安全地将内存归零:
<code class="cpp">namespace secure { template <class T> class allocator : public std::allocator<T> {...} }</code>
但是,我们发现该分配器并不总是为小字符串调用,可能会暴露敏感数据。
解决方案:避免使用 std::string 存储敏感数据
结论是,当前定义的 std::string 不适合存储敏感数据。为此特定目的应考虑自定义实现或替代数据结构。
以上是如何安全地清除存储在'std::string”中的敏感数据?的详细内容。更多信息请关注PHP中文网其他相关文章!