盐/哈希在PHP vs在数据库


Salt / Hash in PHP vs in Database

在PHP中与在数据库中相比,密码哈希和盐发生的位置是否有优势?似乎有进程发生在数据库内部将是最佳的解决方案;因为web服务器和数据库只需要交换密码而不需要交换盐。

可以将盐存储在数据库中。这样做是有好处的,因为您希望为每个用户使用不同的随机盐。

我建议在应用程序中执行哈希。

原因是,如果在SQL表达式中执行哈希,并且在数据库服务器上使用查询日志,则可能在查询日志中存储用户密码的明文样例。

如果您正在使用比简单的散列+盐更好的东西,如PBKDF2,那么您将不得不在这一点上涉及PHP。就最佳位置而言,对我来说,最佳位置是在代码中,因为在那里你可以使用"最佳"密码哈希方法