Hi,
I'm wondering how to present the errors that vt-password finds to the end user. I've set up quite a few validation rules to check for things like length, alphabetical and keyboard sequences, at least three of upper case, lower case, numbers, punctuation etc. The result of all this is that the user can get a daunting list of errors for a password.
One thing that makes this problem worse is that the sequence rules and the character class rules can generate multiple error messages for the same error. For example, if the password is abcdefgh then the sequence rules will create the following errors:
password contains the illegal sequence abc
password contains the illegal sequence bcd
password contains the illegal sequence cde
etc
With the character class rules, each class rule that is not met generates an error message and then the character class rule adds an extra message to say that not enough rules have been met. Example, with a password of 'trousers':
password must contain at least 1 digit
password must contain at least 1 uppercase characters
password must contain at least 1 non-alphanumeric characters
password matches 1 of 4 character rules, but 3 are required
This is problematic firstly because of the sheer number of error messages, but also because taken on their own they are actually incorrect. A password doesn't have to contain at least 1 digit, provided that it has sufficient other characteristics. The final 'password matches 1 of 4 character rules, but 3 are required' doesn't really make much sense when appearing on its own.
I'm thinking that in general the validators should be reworked a bit to reduce the number of errors they produce. The sequence validators should have the option of only reporting the first sequence found. The character class rules should only report one error, maybe with some optional sub-error messages.
Rather than just file bugs on this, I wanted to know how others use this in practice. At the moment, if the user was to try setting their password to 'a', they would get the following:
Password a is invalid because:
Password must be at least 8 characters in length.
Password contains the dictionary word 'a'.
Password contains the reversed dictionary word 'a'.
Password must contain at least 1 uppercase characters.
Password must contain at least 1 digit characters.
Password must contain at least 1 non-alphanumeric characters.
Password matches 1 of 4 character rules, but 3 are required.
Password contains the dictionary word 'a'.
Password contains the reversed dictionary word 'a'.
This is too much information! I'm thinking of putting my rules in some sort of order of priority and then only reporting the first three errors. However, this doesn't work because of the character class rules returning multiple errors.
Any thoughts?
Thanks,
Max Spicer