【发布时间】:2011-08-07 13:36:58
【问题描述】:
如何在std::string 中存储敏感数据(例如:密码)?
我有一个应用程序,它提示用户输入密码并在连接设置期间将其传递给下游服务器。我想在建立连接后安全地清除密码值。
如果我将密码存储为char * 数组,我可以使用SecureZeroMemory 之类的API 从进程内存中删除敏感数据。但是,我想在我的代码中避免使用 char 数组,并且正在为 std::string 寻找类似的东西?
【问题讨论】:
-
根据this link,std::strings 不是为安全目的而设计的。
-
感谢 Marlon,这意味着我别无选择,只能将我的方法接口与
char *buf, size_t len混淆:) -
@user34965:这不是二进制文件。你应该设计一个
class SecureString。复制std::string的接口是个好主意,这样就可以直接替换了。
标签: c++ string passwords secure-coding