Thursday, October 3, 2019

Password Reset Email Pattern



  1. Generate string with the following data members:  UserId, UserName, ExpirationDateTime
  2. Encrypt the string using a FIPS compliant algorithm (e.g. SHA512).
  3. Store encrypted string in the database, user table.
  4. Email encrypted string to the user requesting password reset.
  5. Upon clicking the encrypted string, a secure URL request will be sent to the server.
    1. The encrypted string will be decrypted and verified against the database value (UserId, UserName, ExpirationDateTime not yet passed).
    2. Optional:  After the user successfully resets their password, the encrypted string is purged from the database.
Thank you and goodnight.

-Best Practices Team