什么更安全?使用SQL Server PWDENCRYPT(@Whatever)函数或Properly implemented secure hash?
我们之间存在冲突,一方面我们看到here的安全散列过程,它会生成迭代:salt:hash,并且要比较两者我们需要传递用户输入的密码字符串(例如,在网络表单中),但要比较我们需要从数据库中获取的密码,迭代格式为散列字符串:salt:hash。
问题是,如果我们使用PWDEncrypt,我们无法真正从服务器获取值,这是成功比较输入的哈希与服务器存储的哈希所需的。这意味着我们不能同时使用这两种方法,我们需要选择PWDEncrypt DB或迭代:salt:hash方法。
另一方面,我们有PWDEncrypt,据我所知它也哈希密码,然后我们可以使用PWDCompare来确定是否一切都是一样的。
从安全角度来看,我们应采取哪种方法?我们应该使用数据库本机PWDEncrypt吗?或者我们应该选择其他实现。
甚至重要吗?那两种方法对我们的应用程序安全性的级联效应是什么?