gpt4 book ai didi

c++ - 在析构函数上自动安全地清除 C++ std::string 和 std::vector 的内容

转载 作者:行者123 更新时间:2023-11-30 05:21:25 25 4
gpt4 key购买 nike

<分区>

我想从 std::string 和 std::vector 元素存储的内存中安全地清除(在简单情况下,将内容设置为零)敏感信息。我的 vector 也可以包含原始类型(如 std::vector),所以我想在 vector 的析构函数中清除所有包含的元素会更方便,因为原始类型没有析构函数。我不能用继承覆盖 std::string 和 std::vector 类,因为这些类型不是为此设计的(没有虚拟析构函数等)。还有别的办法吗?我发现了一些带有 std::string 自动清除功能的帖子,但那里的示例实现都不完整。目前,我在使用完对象后通过手动将内容设置为零来清除我的对象,但这非常乏味。

编辑:以这种方式清除内存也是不安全的,因为 C++ 容器可以在某些操作期间分配/取消分配内存。这就是为什么至少对于未使用 SSO(短字符串优化)的较长字符串,使用分配器(在类似问题中描述)可能是唯一的方法。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com