Salting is the correct answer because it involves adding random data (salt) to a message before hashing. This makes the resulting hash value unique, even for identical messages, which helps prevent rainbow table attacks. Rainbow tables are precomputed tables of hash values that can be used to quickly reverse hashes and obtain the original message. By adding a unique salt to each message before hashing, the resulting hash values will be different, rendering rainbow tables ineffective.