mhash() applies a hash function specified by
hash to the data.
hashThe hash id. One of the MHASH_XXX constants.
dataThe user input, as a string.
keyIf specified, the function will return the resulting HMAC instead. HMAC is keyed hashing for message authentication, or simply a message digest that depends on the specified key. Not all algorithms supported in mhash can be used in HMAC mode.