1

我有一个程序,用户输入密码以登录。密码然后保存在名为 users 的 SQL 2000 数据库表中。

问题是任何拥有 SQL 查询分析器或企业管理器的人都可以很容易地读取这些密码。

我希望程序从每个用户的密码构造一个 GUID 并将该 GUID 存储在 SQL 表中,然后当它验证用户密码输入时,它会解构相关的 GUID 并获取原始字符串值以将其与用户输入匹配。

现在我不确定这是否可能,但我听到一些 IT 专家谈论这个主题,他们不是那种你会寻求帮助的人。

4

3 回答 3

3

您可能正在尝试在这里重新发明轮子。有很多标准的密码散列解决方案。

于 2012-11-08T14:33:44.157 回答
2

我认为您应该在存储在数据库中时使用加密您的密码,然后解密加密的密码以进行验证。

此外,您可以使用Hashing。检查这个:加盐密码散列 - 做对了

顺便提一句:

哈希是单向函数。 您不能从散列派生原始数据

加密的情况下,原始数据可以从加密数据中恢复

参考:

.NET 中使用 TripleDESCryptoServiceProvider 类的加密/解密函数

如何使用带有 c# 的 Asp.Net 加密或解密密码

于 2012-11-08T14:24:17.650 回答
0

我相信我会使用 Hash() 方法,我从通过链接 U 提供的 http://crackstation.net/hashing-security.htm中学到了很多 谢谢。

于 2012-11-09T14:45:12.763 回答