【发布时间】:2016-01-12 15:50:32
【问题描述】:
虽然我了解加密和散列密码的过程背后的神学,但我不太了解方法。据我所知,this question 中列出的方法及其相关答案以及此MSDN article 都经过步骤创建不同长度的盐,以在对给定密码进行哈希处理的过程中使用。
但是,以后检查密码怎么样?据我所知,重新创建哈希将导致生成一个全新的盐,最终导致尝试登录时验证失败。
我是否错过了盐或盐配方的保存位置?还是我不是很了解这个过程?
【问题讨论】:
-
当您将密码与生成的盐一起散列时,您将盐以明文形式存储在某处
-
@72DFBF5BA0DF5BE9 那么我认为这些例子没有证明这一点是正确的吗?此外,在服务器上运行的方法中硬编码盐是否同样有效?
-
静态单盐并不好,仍然会大大减慢破解过程,但不如每个密码的动态盐。我没有检查这些示例,但我确定您将用户名、密码哈希和盐存储在数据库中。当用户重新输入密码时,你附加盐,散列并检查它。
-
@72DFBF5BA0DF5BE9 我明白了,所以每个密码肯定只生成一次盐?
-
是的,确保每次新密码都是随机的