我知道在将其保存到数据库之前我应该使用md5(password.salt)。但我有一些奇怪的问题: +我还应该md5内容/文本字符串(密码为盐)? 示例:如果数据库泄露,攻击者无法读取已关闭论坛的内容 +如果我不应该md5内容,并将它们全部保存为纯文本,那么攻击者在拥有数据库时尝试获取userpassword的意义是什么?
答案 0 :(得分:1)
散列密码的目的是防止获得数据库访问权限的第三方了解用户的密码。如果您的数据库内容已经走得太远,那么您的数据库内容已经受到了损害,因此论坛内容已经公开。你不想要的是人们的密码被盗用,因为许多人在多个网站上使用相同的密码。
如果您有安全的论坛,那么您需要阻止攻击者访问数据库。如果他们进入,您的论坛帖子就会曝光。不要试图进一步保护它们。这个想法是如果攻击者获得对数据库的访问权限,那么你就限制了损害的表面区域。您的站点数据已被泄露,但希望不是用户的凭据。有些人会在您的网站上使用他们的银行用户名和密码,这就是您要保护的内容。
请记住,散列函数是一种方法。您不能取消哈希数据。这对密码来说很好:你不需要知道人们的密码是什么,你只需要能够比较它们。它不适用于论坛帖子。散列不是加密。加密数据可以解密。散列数据无法取消散列。