我有一个程序,用户输入密码登录。然后密码保存在名为users的SQL 2000数据库表中。
问题是任何拥有SQL查询分析器或企业管理器的人都可以非常轻松地读取这些密码。
我希望程序从每个用户的密码构造一个GUID并将该GUID存储在SQL表中,然后当它验证用户密码输入时,它解构相关的GUID并获取原始字符串值以使其与用户输入匹配。 / p>
现在我不确定这是否可行,但我听到一些IT专家在谈论这个问题而且他们不是那种求助的人。
答案 0 :(得分:3)
你可能试图在这里重新发明轮子。那里有许多标准的Password Hashing解决方案。
答案 1 :(得分:2)
我认为您应该在存储数据库和数据库时使用加密密码然后,解密加密密码进行验证。
此外,您可以使用哈希。 请检查: Salted Password Hashing - Doing it Right
<强>顺便说一句:强>
哈希是单向函数。 您无法从哈希派生原始数据。
如果加密,原始数据可从加密数据中恢复。
参见:
<强> Encryption/Decryption Function in .NET using the TripleDESCryptoServiceProvider Class 强>
<强> How to Encrypt or Decrypt password using Asp.Net with c# 强>
答案 2 :(得分:0)
我相信我会使用Hash()方法,这是我通过提供的{U}提供了很多信息。http://crackstation.net/hashing-security.htm 谢谢。