Generates a time-based one time password based on customized data, such as the type of hashing algorithm and the number of digits to have in the OTP