我正在建立一个用户数据库,而我正在考虑安全性,这让我觉得,当我要在每个人身上使用独特的用户盐时,是否真的值得拥有一个网站盐。
md5(GLOBAL_SALT . $password . $user_salt);
VS
md5($password . $user_salt);
我的想法是,如果该网站被黑客攻击,黑客无论如何都可以访问全球盐。
答案 0 :(得分:0)
您所谈论的内容也称为 pepper 。盐和胡椒有不同的目的:
它实际上取决于攻击者是否可以控制服务器,或者只有使用胡椒才能访问数据库(SQL注入)。我最近写了一篇关于hashing passwords的教程,其中我试图解释重点。
还有其他一些事情需要考虑,比如MD5对于密码哈希的速度太快,而应该使用密钥派生函数,如 BCrypt 。