Password generation application. The user can choose the length of the password and whether to use uppercase, lowercase, numbers and special characters.