There are reasons why one way to generate passwords is not enough. There are for example password forms that require different password lengths. Some of them require special characters while others disallow special characters. There are also cases where at least one character and one number has to be in the password. To cover all of these requirements calc.pw provides three password features that can be used during the password generation.
calc.pw allows you to define the length of the generated password. By default generated passwords are 8 characters long. To change the length of the generated password you have to put a question mark ("?") after the service-dependent information. The question mark has to be followed by a number that denotes the length of the generated password. The minimal password length is 3 and the maximal password length is 50 due to the limited memory of the Arduino platform.
Some password forms require the password to contain special characters. Which special characters are allowed can vary from form to form. Therefore it is not a good idea to predefine the characters that can be used for the passwords. Instead you can define which special characters can be used for every single password you generate. To do that you have to a append an exclamation mark ("!") to the service-dependent information. The exclamation mark is then followed by the list of special characters that are allowed in the password. One of these is selected during the password generation process.
There are login forms that require the password to contain at least one number and one character. To make sure that the generated password meets this requirement you can prepend the service-dependent information with a hash sign ("#"). This tells calc.pw to check for a number and a character in the generated password. If this check fails a new password is generated until the requirement is met. The hash sign resembles a Sudoku field that typically contains the numbers from 1 to 9.
It is of course possible to combine those three password features. That means you can define the password length, activate the alphanumerics check and specify special characters all at the same time. However, you have to be aware of one thing: When you specify the length and define special characters the length always has to come first. The reason is this: All characters after the exclamation mark are handled like special characters. This would also include the question mark and the numbers following it.