【问题标题】:What is better? query (sql) or hash_equals什么是更好的?查询 (sql) 或 hash_equals
【发布时间】:2017-02-26 23:11:23
【问题描述】:

A) SELECT id, username FROM users WHERE username = ? AND 密码哈希 = ?

B) hash_equals($password_hash_real, $password_hash_user)

很明显,我看看有没有选中一行,看看密码是否正确。

哪个更安全?

【问题讨论】:

  • password_hash()password_verify() 是要走的路,毫无疑问。
  • 您必须从数据库中获取哈希值才能使用原始盐正确地重新哈希密码,所以您最好只使用select id,username, hash where username=?,然后将 php 中的哈希值与 password_verify( )。
  • 太好了,我使用 password_hash 和 password_verify 更改了我的代码。谢谢。
  • @FranzGleichmann 提示:添加您的评论作为答案并获得声誉。
  • 我同意巴特。

标签: php sql hash equals


【解决方案1】:

检查密码匹配不是数据库的工作。此外,您可能想知道用户是否存在,尽管哈希值不是很好。所以我会在 PHP 脚本中完成。

hash_equals() 并不是要使用哈希来验证密码。使用password_hash()password_verify(),因为它们会为您添加盐和一切。

【讨论】:

  • 没错,但@Franz 解决了这个问题。我应该将此答案标记为正确吗?
  • @Lucas 总是很高兴将答案标记为正确并分享代表。现在你的问题被认为仍未解决
猜你喜欢
  • 2013-06-18
  • 2011-04-15
  • 1970-01-01
  • 2011-12-16
  • 2020-04-26
  • 2011-02-12
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多