The security introduced by salt is that you get a hash for something much larger and non-standard than a simple password. It does not matter if its algorithm is closed, since it protects the hash stored in a simple database from rainbow or dictionary attacks.
It is also recommended that you take the hash several times recursively, perhaps by reading the salt at each iteration, so that brute force will take much longer.
EDIT: to what Bevan said about the connection: usually uses the โnumber used onceโ (NONCE) to transmit passwords over insecure channels. The server gives a random string that was never used before the client, it attaches it to a simple password, calculates the hash and sends it. This protects you from eavesdropping attacks.
source share