在数据库中存储密码的最佳方法
我正在一个必须进行身份验证(用户名和密码)的项目中 它还连接到数据库,所以我想我会将用户名和密码存储在那里。 但是,在数据库上的表中仅具有文本字段的密码似乎不是一个好主意。 我正在使用C#并连接到2008 Express服务器。 谁能(以尽可能多的示例)建议存储这种类型的数据的最佳方法是什么? 附言:如果可以提供充分的理由,我不希望此信息不存储在数据库中 #1楼 如果您不需要反转哈希,我将使用MD5 / SHA1作为密码。 当用户登录时,您可以只加密给定的密码并将其与哈希进行比较。 在这种情况下,几乎不可能发生哈希冲突,除非有人获得对数据库的访问权并看到他们已经有冲突的哈希。 #2楼 在您的方案中,您可以查看asp.net成员身份,这是一个好习惯,将用户的密码作为哈希字符串存储在数据库中。 您可以通过将散列的传入密码与数据库中存储的密码进行比较来对用户进行身份验证。 一切都为此目的而构建,请查看 asp.net成员资格 #3楼 您将密码存储在纯文本字段中是一个 可怕的 主意,这是正确的。 但是, 就位置而言 ,在大多数情况下(您真的会想到(我实在想不出任何反例)),在数据库中存储密码 表示 是正确的做法。 通过表示,我的意思是您想使用盐(每个用户应该有所不同)和安全的1向算法对密码进行哈希处理并存储 该 密码,从而丢弃原始密码。 然后,当您要验证密码时,可以对值进行哈希处理