I'm wondering, if two users in the database have the same password, the password_hash()
will create two different hashes, is that right? And if so, how does it do it?
And how does it work with password_verify()
when there are two passwords that are equally the same. I'm trying to understand the works behind this one.
Asked
Active
Viewed 26 times
0

Mizugorou
- 7
- 2
-
1You can check this yourself - hash a password and run it twice, see what it outputs. – Nigel Ren May 18 '21 at 12:03
-
Yes, I know what the output is. I want to know how the function generates different hashes when it's the same password with two different users. – Mizugorou May 18 '21 at 12:04
-
3The difference is created because salt is used. https://en.wikipedia.org/wiki/Salt_(cryptography) – Chris Haas May 18 '21 at 12:07
-
@ChrisHaas so if I understand correctly, each salt is different with every user even if it's the same password? – Mizugorou May 18 '21 at 12:12
-
1There is a lot more information in https://stackoverflow.com/questions/30279321/how-to-use-phps-password-hash-to-hash-and-verify-passwords. – Nigel Ren May 18 '21 at 12:15
-
Yes, it is randomly generated and you can even see the salt in the password string itself – Chris Haas May 18 '21 at 12:16
-
Does this answer your question? [How to use PHP's password\_hash to hash and verify passwords](https://stackoverflow.com/questions/30279321/how-to-use-phps-password-hash-to-hash-and-verify-passwords) – Cheshire Cat May 18 '21 at 15:12