当用户注册并登录时,我使用相同的password_hash函数来对明文密码进行哈希处理。注册并登录时,PHP密码哈希值不一样
password_hash($password, PASSWORD_DEFAULT)
但密码是不一样的。
我可以证明这另一种方式,只需注册两个用户使用相同的密码。
例如 “管理员” 变成 “$ 2Y $ 10 $ SyqILazLbo4jJVYvxYfwW.WgHUnSi.cRMETWoMjZXwMNa4H4tYELK”
上一个用户,和 “$ 2Y $ 10 $ gXfVz6oH4afxAL.7ytFJseZV3VERxbSYXqN7FYsRzH4IrjJw9uyO6” 在另一个上。这意味着password_hash将永远不会相同,因此用户无法登录。
我在做什么错?
这是正常的,因为该功能将每次产生不同的哈希值。现在你为什么要说什么似乎是他们*永远不会*登录? –
要登录,用户提供他们的用户名和密码。密码必须在数据库中进行散列处理,所以.. username must = username。密码必须=密码。如果每次散列值不同,密码将如何相等? – user3822370
这就是函数的工作原理,所以不要担心。 –