我有一个程序,用户输入密码以登录。密码然后保存在名为 users 的 SQL 2000 数据库表中。
问题是任何拥有 SQL 查询分析器或企业管理器的人都可以很容易地读取这些密码。
我希望程序从每个用户的密码构造一个 GUID 并将该 GUID 存储在 SQL 表中,然后当它验证用户密码输入时,它会解构相关的 GUID 并获取原始字符串值以将其与用户输入匹配。
现在我不确定这是否可能,但我听到一些 IT 专家谈论这个主题,他们不是那种你会寻求帮助的人。
我有一个程序,用户输入密码以登录。密码然后保存在名为 users 的 SQL 2000 数据库表中。
问题是任何拥有 SQL 查询分析器或企业管理器的人都可以很容易地读取这些密码。
我希望程序从每个用户的密码构造一个 GUID 并将该 GUID 存储在 SQL 表中,然后当它验证用户密码输入时,它会解构相关的 GUID 并获取原始字符串值以将其与用户输入匹配。
现在我不确定这是否可能,但我听到一些 IT 专家谈论这个主题,他们不是那种你会寻求帮助的人。
您可能正在尝试在这里重新发明轮子。有很多标准的密码散列解决方案。
我认为您应该在存储在数据库中时使用加密您的密码,然后解密加密的密码以进行验证。
此外,您可以使用Hashing。检查这个:加盐密码散列 - 做对了
顺便提一句:
哈希是单向函数。 您不能从散列派生原始数据。
在加密的情况下,原始数据可以从加密数据中恢复。
参考:
我相信我会使用 Hash() 方法,我从通过链接 U 提供的 http://crackstation.net/hashing-security.htm中学到了很多 谢谢。