Jon*_*ood 4 asp.net passwords asp.net-membership
我正在将ASP.NET成员资格用于主要服务于高级用户的网站.我理解散列和加密密码之间的区别,我正在尝试在两者之间做出决定.
在我的上一个客户抱怨哈希密码是一个完整的PITA之后,我开始偏爱加密密码了.但有人认为这不够安全.
所以我的问题是:加密密码的风险究竟是什么?任何能够通过从数据库解密密码来窃取密码的人肯定能够重置它们,如果它们被散列,不是吗?我很难看到有人可能会因加密密码而导致问题,但无法使用加密密码.使用户方便也很重要.
Sto*_*ive 15
可解密密码的风险在于人们使用一个密码进行各种登录和帐户,而不仅仅是您正在处理的应用程序.
将密码视为帐户所有者的财产.用你来查看,解密或做其他事情不属于你.如果用户忘记了密码,则提供重置,而不是检索.
关键是加密密码可以被解密...因此可以通过访问密钥等来获知所有密码.
散列(带盐)密码是一个功能,因此实际上没有可能的方法来确定密码是什么,这意味着提供密码的用户不必担心.当然有人可以更改存储位置(例如数据库)中的哈希值,以便用户无法再登录,但他们原先提供的密码仍然不可知.
编辑
当你标记ASP.Net这个问题时,我建议使用BCrypt.Net库来生成哈希值
| 归档时间: |
|
| 查看次数: |
5361 次 |
| 最近记录: |