好的,我有一个用C#编写的应用程序.我们在SQL Server中有数据.在这些数据中,我们有用户帐户,可以访问应用程序. 我已经阅读过,而且我知道你应该加盐和散列并且可能会散乱很多次等等.但
我已经阅读过,而且我知道你应该加盐和散列并且可能会散乱很多次等等.但是,我该怎么办?我应该向SQL Server发送什么内容?究竟我在数据库中存储什么?我在SQL中哈希吗? (可能是一个散列函数,就像在mysql中一样?)我是否在代码中散列并执行奇特的东西?我是否将哈希发送到服务器并进行比较,或者我是否从服务器获取哈希并在我的应用程序中进行比较?盐怎么样?我在哪里制作的?我在哪里存放?我怎么得到它?
换句话说,有人可以给我一个很好的清晰的登录方案演示(可能还有用户添加/重置密码方案).什么地方,应该在哪里使用,等等.
希望有人可以为我清除这些东西=)
我完全赞同Joel Coehoorn,最好的选择就是相信别人经过考验的真实实施.但是,如果您决定推出自己的安全实现,那么我的建议如下:>将哈希和salt存储在数据库中.>在您自己的代码中生成哈希和salt.这样你就不会把自己绑在一个特定的数据库上.>切勿以明文形式通过线路发送密码.我建议从数据库中获取哈希值和salt,并将其与您希望进行身份验证的一方提供的用户名和密码计算出的值进行比较.