You are mixing two different hash values:
Checksumming to protect against accidental (non-malicious) errors.
Calculation of cryptographic messages for storing passwords, signing messages, certificates ...
CRCs are a good choice for the first application, but not completely suitable for the second, because it is easy to calculate the collision (in mathematics: CRCs are linear). Your friend tells you this.
MD5 and SHA1 are cryptographic hashes designed for the second type of application. However, MD5 was hacked, and SHA1 is now considered weak. However, even though MD5 can be hacked, it takes a long time to detect MD5 collisions (from several days to several weeks).
As for salt, it makes the calculation of the cryptographic hash local by mixing in some random unclassified value, this value is called salt . This prevents the calculation of global tables, which make it easy to calculate possible values ββ(for example, passwords) from the hash value. Computing tables is extremely expensive, but without salt, the cost will be amortized for many hacked passwords.
starblue
source share