Why do hash functions use xor to combine multiple values?