Skip to main content

6.1. 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.


🇨🇳 中文

对于许多用户来说,他们最近的联网设备将是他们的移动电话;通常,这些设备提供的输入方法比计算机键盘更耗时来更改大小写或输入数字。为了提高可用性(提高输入速度并减少重试),在选择用户代码字符集时应考虑此类设备的限制。

提高输入速度的一种方法是将字符集限制为不区分大小写的 A-Z 字符,没有数字。这些字符通常可以在移动键盘上输入而无需使用修饰键。进一步删除元音以避免随机创建单词会产生 base 20 字符集 BCDFGHJKLMNPQRSTVWXZ。可以包含破折号或其他标点符号以提高可读性。

遵循此指南的示例用户代码 WDJB-MJHT 包含 8 个有效字符,并添加了破折号以提高最终用户可读性。产生的熵为 20^8。

纯数字代码也是可用性的良好选择,特别是对于针对不使用 A-Z 字符键盘的区域设置的客户端,尽管此类代码的长度需要更长以保持高熵。

包含 9 个有效数字并添加破折号以提高最终用户可读性且熵为 10^9 的示例数字用户代码是 019-450-730

在处理输入的用户代码时,服务器应删除其为可读性添加的破折号和其他标点符号(使用户可选择是否包含此类标点符号)。对于仅使用 A-Z 范围内字符的代码,如上面定义的 base 20 字符集,应在比较之前将用户的输入大写,以考虑用户可能输入等效小写字符的事实。建议进一步删除所选字符集之外的所有字符,以减少错误键入的字符(如空格字符)使原本有效的输入无效的情况。

建议 (RECOMMENDED) 避免包含两个或更多易于相互混淆的字符的字符集,如"0"和"O"或"1"、"l"和"I"。此外,在实际可行的范围内,当字符集包含可能与字符集之外的字符混淆的字符时,可以 (MAY) 用字符集中与之通常混淆的字符替换集外的字符;例如,在使用数字 0-9 字符集时,"O"可以替换为"0"。


🇯🇵 日本語

多くのユーザーにとって、最も近いインターネット接続デバイスは携帯電話です。通常、これらのデバイスは、大文字小文字を変更したり数字を入力したりするために、コンピュータキーボードよりも時間のかかる入力方法を提供します。ユーザビリティを向上させる(入力速度を向上させ、再試行を減らす)ために、ユーザーコード文字セットを選択する際には、このようなデバイスの制限を考慮する必要があります。

入力速度を向上させる一つの方法は、文字セットを大文字小文字を区別しない A-Z 文字に制限し、数字を含めないことです。これらの文字は通常、修飾キーを使用せずにモバイルキーボードで入力できます。さらに、ランダムに単語を作成することを避けるために母音を削除すると、base 20 文字セット BCDFGHJKLMNPQRSTVWXZ が得られます。ダッシュまたはその他の句読点を可読性のために含めることができます。

このガイドラインに従った例のユーザーコード WDJB-MJHT は、8 つの有効文字を含み、エンドユーザーの可読性のためにダッシュが追加されています。結果のエントロピーは 20^8 です。

純粋な数値コードも、特に A-Z 文字キーボードが使用されないロケールを対象とするクライアントにとってユーザビリティの良い選択ですが、高いエントロピーを維持するには、そのようなコードの長さをより長くする必要があります。

9 桁の有効数字を含み、エンドユーザーの可読性のためにダッシュが追加され、10^9 のエントロピーを持つ例の数値ユーザーコードは 019-450-730 です。

入力されたユーザーコードを処理する際、サーバーは可読性のために追加したダッシュやその他の句読点を削除する必要があります(ユーザーによるそのような句読点の含めることをオプションにします)。上記で定義された base 20 文字セットのように、A-Z 範囲の文字のみを使用するコードの場合、ユーザーが同等の小文字を入力する可能性があるという事実を考慮して、比較の前にユーザーの入力を大文字にする必要があります。誤って入力された文字(スペース文字など)が他の有効な入力を無効にするケースを減らすために、選択された文字セット外のすべての文字をさらに削除することが推奨されます。

"0" と "O"、または "1"、"l"、"I" のように、互いに簡単に混同できる 2 つ以上の文字を含む文字セットを避けることが推奨されます (RECOMMENDED)。さらに、実用的な範囲で、文字セットに文字セット外の文字と混同される可能性のある文字が含まれている場合、セット外の文字をセット内の通常混同される文字で置き換えることができます (MAY)。たとえば、数値 0-9 文字セットを使用する場合、"O" を "0" で置き換えることができます。


🇫🇷 Français

Pour de nombreux utilisateurs, leur appareil connecté à Internet le plus proche sera leur téléphone mobile; généralement, ces appareils offrent des méthodes de saisie qui prennent plus de temps qu'un clavier d'ordinateur pour changer la casse ou saisir des chiffres. Pour améliorer l'utilisabilité (améliorer la vitesse de saisie et réduire les nouvelles tentatives), les limitations de ces appareils doivent être prises en compte lors de la sélection du jeu de caractères du code utilisateur.

Une façon d'améliorer la vitesse de saisie est de restreindre le jeu de caractères aux caractères A-Z insensibles à la casse, sans chiffres. Ces caractères peuvent généralement être saisis sur un clavier mobile sans utiliser de touches modificatrices. En supprimant davantage les voyelles pour éviter de créer des mots au hasard, on obtient le jeu de caractères base 20 BCDFGHJKLMNPQRSTVWXZ. Des tirets ou d'autres signes de ponctuation peuvent être inclus pour la lisibilité.

Un exemple de code utilisateur suivant cette directive, WDJB-MJHT, contient 8 caractères significatifs et des tirets ont été ajoutés pour la lisibilité de l'utilisateur final. L'entropie résultante est 20^8.

Les codes purement numériques sont également un bon choix pour l'utilisabilité, en particulier pour les clients ciblant des locales où les claviers de caractères A-Z ne sont pas utilisés, bien que la longueur d'un tel code doive être plus longue pour maintenir une entropie élevée.

Un exemple de code utilisateur numérique contenant 9 chiffres significatifs et des tirets ajoutés pour la lisibilité de l'utilisateur final avec une entropie de 10^9 est 019-450-730.

Lors du traitement du code utilisateur saisi, le serveur doit supprimer les tirets et autres signes de ponctuation qu'il a ajoutés pour la lisibilité (rendant l'inclusion de tels signes de ponctuation par l'utilisateur facultative). Pour les codes utilisant uniquement des caractères dans la plage A-Z, comme avec le jeu de caractères base 20 défini ci-dessus, l'entrée de l'utilisateur doit être convertie en majuscules avant une comparaison pour tenir compte du fait que l'utilisateur peut saisir les caractères minuscules équivalents. Il est recommandé de supprimer davantage tous les caractères en dehors du jeu de caractères choisi pour réduire les cas où un caractère saisi par erreur (comme un caractère d'espace) invalide une entrée autrement valide.

Il est RECOMMANDÉ d'éviter les jeux de caractères qui contiennent deux caractères ou plus qui peuvent facilement être confondus les uns avec les autres, comme "0" et "O" ou "1", "l" et "I". De plus, dans la mesure du possible, lorsqu'un jeu de caractères contient un caractère qui peut être confondu avec des caractères en dehors du jeu de caractères, un caractère en dehors du jeu PEUT être substitué par celui du jeu de caractères avec lequel il est communément confondu; par exemple, "O" peut être substitué par "0" lors de l'utilisation du jeu de caractères numérique 0-9.


🇩🇪 Deutsch

Für viele Benutzer wird ihr nächstes mit dem Internet verbundenes Gerät ihr Mobiltelefon sein; typischerweise bieten diese Geräte Eingabemethoden, die zeitaufwändiger sind als eine Computertastatur, um Groß-/Kleinschreibung zu ändern oder Zahlen einzugeben. Um die Benutzerfreundlichkeit zu verbessern (Eingabegeschwindigkeit zu verbessern und Wiederholungen zu reduzieren), sollten die Einschränkungen solcher Geräte bei der Auswahl des Benutzercode-Zeichensatzes berücksichtigt werden.

Eine Möglichkeit, die Eingabegeschwindigkeit zu verbessern, besteht darin, den Zeichensatz auf nicht groß-/kleinschreibungsempfindliche A-Z-Zeichen ohne Ziffern zu beschränken. Diese Zeichen können typischerweise auf einer mobilen Tastatur eingegeben werden, ohne Modifikatortasten zu verwenden. Das weitere Entfernen von Vokalen, um das zufällige Erstellen von Wörtern zu vermeiden, führt zum Base-20-Zeichensatz BCDFGHJKLMNPQRSTVWXZ. Bindestriche oder andere Interpunktion können zur Lesbarkeit enthalten sein.

Ein Beispiel-Benutzercode nach dieser Richtlinie, WDJB-MJHT, enthält 8 signifikante Zeichen und hat Bindestriche zur Lesbarkeit für den Endbenutzer hinzugefügt. Die resultierende Entropie beträgt 20^8.

Rein numerische Codes sind ebenfalls eine gute Wahl für die Benutzerfreundlichkeit, insbesondere für Clients, die auf Gebietsschemas abzielen, in denen A-Z-Zeichen-Tastaturen nicht verwendet werden, obwohl die Länge eines solchen Codes länger sein muss, um eine hohe Entropie beizubehalten.

Ein Beispiel für einen numerischen Benutzercode, der 9 signifikante Ziffern enthält und Bindestriche zur Lesbarkeit für den Endbenutzer mit einer Entropie von 10^9 hinzugefügt hat, ist 019-450-730.

Bei der Verarbeitung des eingegebenen Benutzercodes sollte der Server Bindestriche und andere Interpunktion entfernen, die er zur Lesbarkeit hinzugefügt hat (wodurch das Einbeziehen solcher Interpunktion durch den Benutzer optional wird). Für Codes, die nur Zeichen im A-Z-Bereich verwenden, wie beim oben definierten Base-20-Zeichensatz, sollte die Eingabe des Benutzers vor einem Vergleich in Großbuchstaben umgewandelt werden, um der Tatsache Rechnung zu tragen, dass der Benutzer die entsprechenden Kleinbuchstaben eingeben kann. Es wird empfohlen, alle Zeichen außerhalb des gewählten Zeichensatzes weiter zu entfernen, um Fälle zu reduzieren, in denen ein versehentlich eingegebenes Zeichen (wie ein Leerzeichen) eine ansonsten gültige Eingabe ungültig macht.

Es wird EMPFOHLEN, Zeichensätze zu vermeiden, die zwei oder mehr Zeichen enthalten, die leicht miteinander verwechselt werden können, wie "0" und "O" oder "1", "l" und "I". Darüber hinaus kann, soweit praktikabel, wenn ein Zeichensatz ein Zeichen enthält, das mit Zeichen außerhalb des Zeichensatzes verwechselt werden kann, ein Zeichen außerhalb des Satzes durch das im Zeichensatz ersetzt werden, mit dem es üblicherweise verwechselt wird; zum Beispiel kann "O" durch "0" ersetzt werden, wenn der numerische 0-9-Zeichensatz verwendet wird.


🇮🇹 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.