我读过一些建议散列密码并将其存储在数据库中的问题。
当有人登录时,您将提供的密码与您存储的内容进行哈希处理。
我不明白的是这是如何工作的?两个字符串可以散列为相同的值 - 不太可能但绝对可能
有人可以帮帮我吗?
编辑:谁能给出碰撞可能性的统计数据?
最佳答案
您不应存储未加密的密码,因为您的数据库管理员不应该访问客户密码。
对密码进行哈希处理可以防止数据库管理员看到密码。
发生冲突的可能性非常小,这不是问题,因为这不会显着增加有人在您锁定帐户之前试图暴力破解客户密码获得匹配的可能性。
PS 在散列之前对密码进行加盐也是一种很好的做法,这样如果黑客以某种方式获得了密码表的访问权,那么暴力破解就更难了。使使用彩虹表等变得更加困难。
关于c# - 加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140085/