c# - 加密密码

标签 c# encryption

我读过一些建议散列密码并将其存储在数据库中的问题。

当有人登录时,您将提供的密码与您存储的内容进行哈希处理。

我不明白的是这是如何工作的?两个字符串可以散列为相同的值 - 不太可能但绝对可能

有人可以帮帮我吗?

编辑:谁能给出碰撞可能性的统计数据?

最佳答案

您不应存储未加密的密码,因为您的数据库管理员不应该访问客户密码。

对密码进行哈希处理可以防止数据库管理员看到密码。

发生冲突的可能性非常小,这不是问题,因为这不会显着增加有人在您锁定帐户之前试图暴力破解客户密码获得匹配的可能性。

PS 在散列之前对密码进行加盐也是一种很好的做法,这样如果黑客以某种方式获得了密码表的访问权,那么暴力破解就更难了。使使用彩虹表等变得更加困难。

关于c# - 加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140085/

相关文章:

c# - 使用 iTextSharp 将不同尺寸的页面添加到 PDF

java - 如何完成凯撒密码的创建?

algorithm - C# 和 ColdFusion AES 加密不匹配

c# - 如何从c#获取网站标题

c# - Linq 和 IEnumerable 惰性查询。效率损失?

c# - 为 Kinects 深度场创建 3D 面部网格

java - Veracode 拒绝加密算法 - 我应该使用哪个?

c# - 以毫秒为单位创建日志

Java Card Crypto 异常 RSA key 加密

java - 如何使 IvParameterSpec 随机但仍然解密