Use hashWithSalt to guarantee consistent hashing across runs