【发布时间】: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 提示:添加您的评论作为答案并获得声誉。
-
我同意巴特。