當用戶註冊並登錄時,我使用相同的password_hash函數來對明文密碼進行哈希處理。註冊並登錄時,PHP密碼哈希值不一樣
password_hash($password, PASSWORD_DEFAULT)
但密碼是不一樣的。
我可以證明這另一種方式,只需註冊兩個用戶使用相同的密碼。
例如 「管理員」 變成 「$ 2Y $ 10 $ SyqILazLbo4jJVYvxYfwW.WgHUnSi.cRMETWoMjZXwMNa4H4tYELK」
上一個用戶,和 「$ 2Y $ 10 $ gXfVz6oH4afxAL.7ytFJseZV3VERxbSYXqN7FYsRzH4IrjJw9uyO6」 在另一個上。這意味着password_hash將永遠不會相同,因此用戶無法登錄。
我在做什麼錯?
這是正常的,因爲該功能將每次產生不同的哈希值。現在你爲什麼要說什麼似乎是他們*永遠不會*登錄? –
要登錄,用戶提供他們的用戶名和密碼。密碼必須在數據庫中進行散列處理,所以.. username must = username。密碼必須=密碼。如果每次散列值不同,密碼將如何相等? – user3822370
這就是函數的工作原理,所以不要擔心。 –