【发布时间】:2017-03-23 03:18:17
【问题描述】:
我正在用 C 语言编写一个程序,允许用户注册和登录。当用户注册时,我想将他的用户名和密码保存在一个文件中。
据我了解,这样做的最佳方法是在密码末尾添加一个随机加盐,然后存储加盐密码的安全哈希(例如 SHA-1)。
我的问题是:如果我在本地将用户名、哈希和盐存储在文本文件中,那么是什么阻止攻击者使用自己的盐将文件中的哈希和盐更改为自己的 SHA-1 哈希,然后使用他的新密码?
谢谢。
【问题讨论】:
-
如果攻击者已经拥有该级别的访问权限,那么当他们可以直接提取所需的所有数据时,为什么还要登录?
-
这正是我想要阻止的。如何防止攻击者访问本地存储的数据?
-
我认为一种可能性是加密您的文本文件。尽管如此,你的二进制程序还是有如何解密它的信息,所以攻击者也不是不可能弄清楚,但如果你把事情弄得足够模糊,那就真的很难了。