6.1. Raccomandazioni per il codice utente (User Code Recommendations)
🇬🇧 English
For many users, their nearest Internet-connected device will be their mobile phone; typically, these devices offer input methods that are more time-consuming than a computer keyboard to change the case or input numbers. To improve usability (improving entry speed and reducing retries), the limitations of such devices should be taken into account when selecting the user code character set.
One way to improve input speed is to restrict the character set to case-insensitive A-Z characters, with no digits. These characters can typically be entered on a mobile keyboard without using modifier keys. Further removing vowels to avoid randomly creating words results in the base 20 character set BCDFGHJKLMNPQRSTVWXZ. Dashes or other punctuation may be included for readability.
An example user code following this guideline, WDJB-MJHT, contains 8 significant characters and has dashes added for end-user readability. The resulting entropy is 20^8.
Pure numeric codes are also a good choice for usability, especially for clients targeting locales where A-Z character keyboards are not used, though the length of such a code needs to be longer to maintain high entropy.
An example numeric user code that contains 9 significant digits and dashes added for end-user readability with an entropy of 10^9 is 019-450-730.
When processing the inputted user code, the server should strip dashes and other punctuation that it added for readability (making the inclusion of such punctuation by the user optional). For codes using only characters in the A-Z range, as with the base 20 charset defined above, the user's input should be uppercased before a comparison to account for the fact that the user may input the equivalent lowercase characters. Further stripping of all characters outside the chosen character set is recommended to reduce instances where an errantly typed character (like a space character) invalidates otherwise valid input.
It is RECOMMENDED to avoid character sets that contain two or more characters that can easily be confused with each other, like "0" and "O" or "1", "l" and "I". Furthermore, to the extent practical, when a character set contains a character that may be confused with characters outside the character set, a character outside the set MAY be substituted with the one in the character set with which it is commonly confused; for example, "O" may be substituted for "0" when using the numerical 0-9 character set.
🇮🇹 Italiano
Per molti utenti, il dispositivo connesso a Internet più vicino sarà il loro telefono cellulare; tipicamente, questi dispositivi offrono metodi di input più dispendiosi in termini di tempo rispetto a una tastiera di computer per cambiare maiuscole/minuscole o inserire numeri. Per migliorare l'usabilità (migliorare la velocità di immissione e ridurre i tentativi), le limitazioni di tali dispositivi dovrebbero essere prese in considerazione quando si seleziona il set di caratteri del codice utente.
Un modo per migliorare la velocità di immissione è limitare il set di caratteri ai caratteri A-Z senza distinzione tra maiuscole e minuscole, senza cifre. Questi caratteri possono tipicamente essere inseriti su una tastiera mobile senza utilizzare tasti modificatori. Rimuovendo ulteriormente le vocali per evitare di creare parole casualmente si ottiene il set di caratteri base 20 BCDFGHJKLMNPQRSTVWXZ. Trattini o altra punteggiatura possono essere inclusi per la leggibilità.
Un esempio di codice utente che segue questa linea guida, WDJB-MJHT, contiene 8 caratteri significativi e ha trattini aggiunti per la leggibilità dell'utente finale. L'entropia risultante è 20^8.
I codici puramente numerici sono anche una buona scelta per l'usabilità, specialmente per i client che si rivolgono a località dove le tastiere di caratteri A-Z non vengono utilizzate, sebbene la lunghezza di tale codice debba essere più lunga per mantenere un'alta entropia.
Un esempio di codice utente numerico che contiene 9 cifre significative e trattini aggiunti per la leggibilità dell'utente finale con un'entropia di 10^9 è 019-450-730.
Quando si elabora il codice utente immesso, il server dovrebbe rimuovere trattini e altra punteggiatura che ha aggiunto per la leggibilità (rendendo l'inclusione di tale punteggiatura da parte dell'utente opzionale). Per i codici che utilizzano solo caratteri nell'intervallo A-Z, come con il set di caratteri base 20 definito sopra, l'input dell'utente dovrebbe essere convertito in maiuscolo prima di un confronto per tenere conto del fatto che l'utente potrebbe inserire i caratteri minuscoli equivalenti. Si raccomanda di rimuovere ulteriormente tutti i caratteri al di fuori del set di caratteri scelto per ridurre i casi in cui un carattere digitato erroneamente (come un carattere spazio) invalida un input altrimenti valido.
È RACCOMANDATO evitare set di caratteri che contengono due o più caratteri che possono essere facilmente confusi tra loro, come "0" e "O" o "1", "l" e "I". Inoltre, nella misura in cui è pratico, quando un set di caratteri contiene un carattere che può essere confuso con caratteri al di fuori del set di caratteri, un carattere al di fuori del set PUÒ essere sostituito con quello nel set di caratteri con cui è comunemente confuso; ad esempio, "O" può essere sostituito con "0" quando si utilizza il set di caratteri numerico 0-9.