There is no purpose for a password - just to avoid a simplified dictionary attack. TMHO in many applications there uses only one hash for all passwords.
For example, let them say: God, the sun and love are the common password. Any attacker can have a dictionary containing these words, and hash.
If instead of storing a hash (password) you store a hash (password + salt) (or a hash (salt + password)), you can invalidate this dictionary, because if your salt is "dza $ ^" é) "the probability that the dictionary contains "dza $ ^" é) àùgod, tends to be 0.
Changing the salt at each input can also be good practice (but I think it’s not so common), but you have to find how to get it in order to verify the password.
Aster source share