One more time, the simplest way to make our generator capable of creation
of passwords with any combination of upper case letters, lower case letters...
etc. is to make 4 buttons that control the value of 4 variables, one for every
category of chars:
variable upp for upper case letter;
variable low for lower case letter;
variable num for numbers;
variable symb for symbols;
each variable can be "on" or "off"; status "on"
means that the associated type of chars are enabled, status "off"
means that the same are disabled. For example if upp="on",
low="off", num="off", symb="on"
then will be generated a password which contains only upper case letters and
symbols.
But how these variables work? For every variable (i.e. for every category of
symbols) it is associated a own "mini-alphabet", and precisely:
upper case letters -> upp -> "ABCDEFGHJKILMNOPQRSTUVWXYZ"
lower case letters -> low -> "abcdefghjkilmnopqrstuvwxyz"
the final alphabet is the sum of the 4 mini-alphabets. By putting "off"
one of the 4 variables we exclude one mini-alphabet; for example if, as above,
upp="on", low="off", num="off",
symb="on", then the final alphabet will be:
"ABCDEFGHJKILMNOPQRSTUVWXYZ|!£$%&/()=?^'ìè+òàù-.,<é*ç°§;:_>[]@#{}"
and in the password generated will appear only those chars.