【发布时间】:2013-09-09 17:30:08
【问题描述】:
我目前正在从事一个项目,我正在用 ASP.NET 重写一个旧的(1990 年代后期)Web 应用程序。该应用程序的一部分是用户身份验证系统,用于访问网站上的几个页面。用户凭据(用户名、密码等)存储在数据库表中。
这都是非常标准的,但是在使用这个数据库时,我发现,令我震惊的是,这些数据是以明文形式存储的。
我想知道提高这个不安全系统的安全性的最佳方法是什么。有没有一种简单的方法来获取纯文本数据,加密(或散列)它,然后重新插入它?我可以使用 .NET Forms 身份验证来促进其中的任何一项吗?这是在新应用中进行用户身份验证的好选择吗?
谢谢!
【问题讨论】:
-
附带说明,加密存储的密码通常是个坏主意。散列它们是迄今为止的首选。
-
扩展@Aurand 的评论:用盐散列被认为是常见的做法,没有盐的散列几乎和加密一样糟糕。否则黑客要找回密码太容易了。
-
这绝对是有道理的。如果没有太多额外的工作,我更愿意散列密码。我可以像@Garrison Neely 的回答一样实现这个吗?
标签: asp.net sql security encryption passwords