Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 PHP 和数据库中,密码哈希和盐的出现位置是否有优势?似乎让该过程发生在数据库内部将是最佳解决方案;因为网络服务器和数据库只需要交换密码而不是盐。
将盐存储在数据库中是可以的。这样做是有好处的,因为您想为每个用户使用不同的随机盐。
我建议在应用程序中进行散列。
原因是,如果您在 SQL 表达式中进行散列处理,并且在数据库服务器上使用查询日志记录,您可能会将用户密码的纯文本样本存储在查询日志中。
如果您使用的东西比简单的哈希+盐更好,例如PBKDF2,那么此时您将不得不涉及 PHP AFAIK。因此,就最佳位置而言,对我而言,最佳位置在代码中,因为您可以在此处执行“最佳”密码散列方法。