使用GetHashCode"保护"用户密码

ili*_*ian 3 .net c# security cryptography

我工作的公司已经签订了大订单处理系统的支持合同.作为初始系统审核的一部分,我注意到存储在数据库中的密码实际上是密码的哈希码.

实质上:

string pwd = "some pasword";
string securePwd = pwd.GetHashCode();
Run Code Online (Sandbox Code Playgroud)

我的问题是,这有多安全?

我对此感到不舒服,但我对GetHashCode的工作原理还不太了解.我更喜欢使用类似MD5哈希的东西,但如果我浪费时间,那么我就不会打扰了.

Mit*_*eat 5

您应该使用加密的加密哈希,例如SHA256Managed.

Jeff Attwood在这个主题上有一些好帖子:

彩虹哈希开裂

您可能错误地存储密码


stu*_*ith 5

它不仅不安全,而且还可能发生变化:

http://netrsc.blogspot.com/2008/08/gethashcode-differs-on-systems.html

GetHashValue为给定输入返回的值在过去已更改.

不能保证它在应用程序的不同执行之间甚至是相同的.