首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++密码处理安全实践?

c++密码处理安全实践?
EN

Stack Overflow用户
提问于 2015-03-11 21:01:57
回答 1查看 2.7K关注 0票数 4

我正在创建一个处理用户名和密码的c++类。

我试图对一些基本但有效的实践进行一些研究,以便在c++中处理这些信息,因此很难被人找到,例如,扫描内存和变量来确定信息。

简单地说,我指的是不需要太多工作的东西;我不想编写一个完整的密码库、随机寻址系统,甚至是哈希函数。

另外,我假设最好不要在变量中维护这个信息,并且在我不需要它的时候就把它处理掉?

编辑:

不,我不会将此信息保存到磁盘中,只会将其保存在内存中的变量中。

Edit2:

该类与平台无关,使用boost。

Edit3:

下面是函数的声明:

代码语言:javascript
复制
void authenticate(const std::string & user, const std::string & pass);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-11 21:14:30

没有最基本的技术将保护密码从谁有一个调试器,可以访问内存!

因此,最安全的方法不是存储密码,而是只存储密码的散列。有许多可用的实现,例如开源实现,一个来自受信任的源代码。

是的,当你不再需要它时,删除你的变量。也就是说:覆盖值,而不仅仅是销毁变量(如果你真的想安全的话,你可以在上面写随机的值,但这太过分了):

如果是字符串,那么值得提一下VoidStars的建议:

代码语言:javascript
复制
 string pwd; 
 ....
 std::fill_n(&pwd[0], pwd.capacity()-1, 0xff);  // really overwrite
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28997295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档