In reply to Jed.

I see, but I'm not sure you'll be able to get the "hash-like" experience this way. One advantage of a hash is that you can't reverse-engineer the original value, but you can verify that an original value is (or is not) the source for the hash (by reapplying the hash function + salt if needed). Numeric IDs can be used to replace a field, but I don't think you'll be able to come up with an integer that represents a unique hash that you can use in the same way. You'd have to keep a table of integer->value mappings, and if data privacy was the concern there would have to be a lot of process around that. Happy to be corrected on this though -- it's not my area of expertise.