Use*_*ser 4 security passwords
据我所知,最好保护密码免受网站管理员本人的影响,因为他可以尝试使用相同的密码来接收用户的电子邮件并登录他的邮箱(因为许多用户在任何地方都使用相同的密码).
除此之外,我没有看到重点.我知道这会使字典攻击变得更加困难但是......如果有人未经许可进入数据库,那么担心密码是否为时已晚?这家伙现在可以访问数据库中的所有表格,并且可以获取所有数据并执行他想要的任何操作.
或者我错过了什么?
您的许多用户使用与您的银行相同的凭据(用户名/密码).如果有人可以获得凭证表,他们可以立即访问一堆银行账户.失败.
如果您实际上没有存储密码,那么攻击者只能通过获取凭据表来窃取用户的银行帐户.
它依赖于哈希是单向函数的事实.换句话说,它很容易将密码转换为哈希,但很难做到相反.
因此,当用户注册时,您将他们选择的密码转换为哈希并存储它.稍后他们使用他们的密码登录,然后将密码转换为其哈希值并进行比较,这是因为,如果(passwordhashA == passwordhashB)则设置为高水平的概率,则passwordA = passwordB.
腌制是解决相关问题的方法.如果您知道某人的密码是,例如ABCDEF,那么您可以尝试计算所有可能密码的哈希值.迟早你可能会发现哈希('狗')= ABCDEF,所以你知道他们的密码.这需要很长时间,但是可以通过使用预先创建的"词典"来加速该过程,其中,对于给定的哈希,您可以查找相应的密码.然而,腌制意味着被散列的文本不是简单的英语单词,或简单的单词组合.例如,我在上面给出的案例中,将被散列的文本不是'dog',而是'somecrazymadeuptextdog'.这意味着任何随时可用的字典都是无用的,因为它包含该文本的散列的可能性比它包含'dog'的散列的可能性要小得多.如果salt是随机的字母数字字符串,则这种可能性会变得更低.