This class can be used to generate and validate one time passwords that may expire after a period of time (without using a database or saving the password of any kind).
It generates a code based on a secret key that is valid during a period of time.
The class can also be used to validate the generated code in a different server and check if the code expired.