php - 使用 PHP 检查 mysql 数据库中的用户名和散列/加盐密码

标签 php mysql authentication passwords salt

验证用户登录时,首先搜索用户名,然后如果找到,检索散列密码和盐并将其与用户输入进行比较是否安全?

或者,是否应该自行检索用户输入的用户名的盐,然后与输入的密码进行哈希处理,并与数据库中的最终哈希值进行比较?

本质上,在知道用户输入的密码是否有效之前,从数据库存储输入的用户名的密码是否安全?

最佳答案

如果您查看 PHP 密码哈希 API 的示例 https://github.com/ircmaxell/password_compat答案是:不,您从数据库中读取用户并将存储的密码哈希与您刚刚从登录表单中获取的密码进行比较。

请尝试使用这个库 - PHP 5.5 将原生支持这些函数,如果您使用的是 PHP 5.3.7 及更高版本,那么不要重新发明轮子而简单地使用这些函数,这听起来是一个非常好的主意。做自己的事情更有可能受到攻击。

关于php - 使用 PHP 检查 mysql 数据库中的用户名和散列/加盐密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14223170/

相关文章:

php - 如何填充 zend 表单选择元素?

javascript - 我可以将图像从 base64 转换为二进制客户端吗?

php - 使用 php domdocument 获取 YouTube 视频的标题

mysql - 如何创建一组一致的记录

php - Codeigniter mysql 查询 AND_OR

linux - squid basic_ldap_auth 从用户名中剥离 nt 域

web-services - Webhook 回调安全

php - 在php中访问不带方括号的数组值

ruby-on-rails - 如何使用 rspec 在设计中测试 json 登录

mysql - SQL查询; 4 个表上的内连接