我正在创建一个用户数据库,我正在考虑安全性,这让我想到,当我要对每个人都拥有独特的用户盐时,拥有一个站点盐真的值得吗?
md5(GLOBAL_SALT . $password . $user_salt);
对比
md5($password . $user_salt);
我的想法是,如果该网站被黑客入侵,黑客无论如何都可以访问全球盐。
我正在创建一个用户数据库,我正在考虑安全性,这让我想到,当我要对每个人都拥有独特的用户盐时,拥有一个站点盐真的值得吗?
md5(GLOBAL_SALT . $password . $user_salt);
对比
md5($password . $user_salt);
我的想法是,如果该网站被黑客入侵,黑客无论如何都可以访问全球盐。
你说的也叫辣椒。盐和胡椒有不同的用途:
它实际上取决于攻击者是否可以控制服务器,或者如果使用辣椒,则只能访问数据库(SQL 注入)。我最近写了一篇关于散列密码的教程,我试图解释其中的要点。
还有其他一些事情需要考虑,例如 MD5 对密码散列来说太快了,相反应该使用像BCrypt这样的密钥派生函数。