好的,所以我一直在阅读(很多!)关于安全性以及关于散列、加盐、加密等的全部内容,我一直看到的一些东西真的让我很烦恼。似乎很多似乎真的知道他们的东西的人一直说可以将带有散列密码的盐存储在数据库中。
我不禁想知道,为什么?如果您的数据库被转储怎么办?他们可以访问所有内容,对我来说,这意味着他们可以查看任何一条记录,瞧(!)旁边有散列密码和纯文本盐。这为他们提供了针对彩虹表和/或字典攻击运行它所需的信息,不是吗?
我一定遗漏了一些东西(是的,以前从未发生过!!)并且真的很想在这件事上有所启发。
最佳答案
彩虹表对一组不同盐分的密码无效,即使盐分是已知的;你必须为每种盐建立一个不同的表,这违背了彩虹表的全部目的。攻击者单独暴力破解每个密码会更快。这就是拥有每个用户盐的目的。
换句话说,彩虹表仅在您尝试破解许多以相同方式消化、使用相同摘要算法的密码时才有效。为每个密码投入不同的盐意味着密码的消化方式不同。
关于passwords - 当盐存储在散列旁边时,您可以破解散列密码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7004271/