加密密码的最佳方法是什么?

Ale*_*lex 5 c# encryption hash password-protection

我即将为我的应用程序进行"登录",并想知道为我的用户加密密码的最佳方法是什么,我将在我的数据库中输入?我在Google上找到了很多方法,但不知道哪个是最好的.

Chr*_*lor 8

我会用单向盐腌哈希.

例如,使用SHA1哈希,您可以将密码存储为哈希,无法将其反转回原始密码.然后,当用户输入他/她的密码时,您对密码执行相同的SHA1哈希,并将该哈希与您在数据库中存储的内容进行比较,如果匹配则密码正确.

为了进一步保护散列,您可以添加一个盐,这实际上是为每个用户生成的随机生成的值,然后您创建帐户,并将salt值存储在用户记录中.在创建密码的哈希值时,首先将密码与salt组合并散列此组合值.要对用户进行身份验证,请将输入的密码与为用户存储的salt组合,对组合值执行哈希并进行比较.

通过将salt添加到混合中,可以确保发生的密码的哈希值具有不同的哈希值,因为盐渍部分不同.因此,如果两个用户具有相同的密码"Password1234",则两者的存储散列将不相同,因此无法确定两个用户具有相同的密码.