web-dev-qa-db-fra.com

Y a-t-il des lettres / chiffres à éviter dans une pièce d'identité?

Par exemple, un site de téléchargement d'images qui vous donne un identifiant à 5 chiffres pour votre fichier (domain.com/aCd5y)

Ne faut-il pas utiliser de lettres/chiffres dans l'ID final pour faciliter la lecture et le partage des liens (sans copier/coller)?

Dois-je éviter i, I, l ou 1? Et O ou 0? Dans la barre d'URL dans Chrome, 0 n'a pas de ligne, et je (majuscule i) et l (minuscule L) semblent différents, mais je ne suis pas sûr des autres navigateurs, appareils, écrans, etc. pour Par exemple, dans cet article, les majuscules I et les minuscules L se ressemblent.

45
cantsay

Ce à quoi vous faites référence est appelé Caractères ambigus car ils semblent similaires à certains nombres.

Vous pouvez obtenir la liste de ces caractères à partir de ce fichier de code C sur Pwgen .

Si vous n'êtes pas à l'aise de lire le code C, les caractères et les chiffres (et lettres) déroutants correspondants sont

B = 8
G = 6
I = 1 = l (lowercase L)
O = 0
Q = D
S = 5 
Z = 2

Cela dit, je recommande fortement de choisir une police qui améliorera la lisibilité de votre texte, car cela contribuerait à réduire la confusion. Les facteurs pour choisir la bonne police impliqueraient

  1. Largeur fixe : Pour choisir des nombres/lettres aléatoires, la largeur fixe aide énormément, car le crénage ne change pas lorsque vous vous déplacez dans la police.

  2. Utilisez une police avec des regards 0/O séparés - ces gens gâchent définitivement les gens. Recherchez d'autres combinaisons de lettres/chiffres similaires. Potentiellement, laissez 0/O hors du mix juste pour cette raison.

  3. Choisissez une police avec des empattements subtils et des changements de poids .

Voici un article à consulter sur la légitimité des polices

Je recommande également de lire ceci article intéressant sur les codes de coupon UX qui a quelques entrées sur la façon de lever l'ambiguïté. Pour citer l'article

Solution 1: Traitez avec ambiguïté Si vous vous inquiétez de la distinction entre O0, 1Il, 8B ou toute autre combinaison, traitez-les comme le même caractère!

C'est ce que fait Base32 . Il normalisera l'un des caractères ci-dessus (disons les chiffres 018) et omettra ceux qui sont trop similaires (dans ce cas OILB).

Lorsque vous recevez une entrée de l'utilisateur, mappez les caractères omis aux caractères canoniques (par exemple, remplacez la lettre O par le chiffre zéro). De cette façon, même si l'utilisateur ne peut pas le comprendre, cela n'a pas d'importance de toute façon.

Solution 2: Supprimez toute ambiguïté Base32 laisse toujours des caractères qui semblent être ambigus, même s'ils ne le peuvent pas en dessous. Pour les utilisateurs ayant un peu d'expérience avec cela, ils s'arrêteront toujours pour remettre en question ce qu'ils font.

Ergo, vous pouvez aller plus loin et supprimer complètement tous les caractères qui pourraient être perçus comme ambigus (par exemple, tous les 0O1Il8B).

Après tout, vous n'avez pas vraiment besoin de la taille de votre alphabet pour être une puissance de deux. Il est assez facile à convertir en bases arbitraires, et vous n'avez pas besoin qu'il soit particulièrement rapide non plus (car cela coïncide souvent avec la saisie de l'utilisateur).

51
Mervin

Si votre objectif est de faciliter la lecture de l'ID par les humains, vous ne devez pas utiliser de caractères pouvant être confondus avec autre chose.

Ma première recommandation serait de n'utiliser que des lettres majuscules et des chiffres, en laissant de côté O et. Ce qui reste serait plus facile à copier en raison de la cohérence.

Si ce n'est pas possible, je recommanderais alors de laisser de côté: 0, O, o, i, I, l et 1.

Cependant, si pour une raison quelconque, vous pouvez être sûr que vos utilisateurs ne verront que la police dans une police monospace (généralement utilisée dans la programmation), vous ne devrez peut-être pas effectuer cette étape, car les caractères sont généralement faciles à distinguer dans les polices monospaces.

8
JohnGB

tilisez uniquement des lettres majuscules et des chiffres, en omettant I, O, 1 et 0. Cela devrait être assez clair.

Ce même problème survient avec les plaques d'immatriculation des voitures. En Nouvelle-Zélande, les plaques personnalisées ont jusqu'à six caractères, qui peuvent être n'importe quelle lettre ou chiffre majuscule. Bêtement, ils autorisent à la fois O et 0 ainsi que I et 1. En conséquence, il est souvent difficile de lire rapidement une plaque d'immatriculation (par exemple B1GB0Y), ce qui semble aller à l'encontre du but.

Je pense qu'ils auraient dû éviter cela en utilisant un seul glyphe pour O et 0, et un autre glyphe unique pour I et 1.

6
Bennett McElwee

Il existe en effet une série de caractères qui causent généralement des problèmes de lisibilité dans certaines circonstances, selon la police de caractères utilisée, par exemple, ou même dans les captchas car ils sont déformés. Cela comprend: - lettres vs chiffres: difficile à dire O déformé de 0, 6 de G et b, 5 de S/s, 2 de Z/z, 1 de l - chiffres vs chiffres: considérez 5 avec 6, 7 écrits différemment dans certains pays ou confondus avec 1,… - Lettres vs lettres: “vv” vs “w”, “cl” vs “d” , "Nn" vs "m", "m" vs "rn" vs "nn", ... - Personnages vs encombrements: arcs aléatoires parfois présentés comme des encombrements et perçus comme déroutants par opposition aux caractères (J vs L vs 7 par exemple)

4
ivandervaeren

Question très intéressante. S'il est destiné à être utilisé sans copier-coller, il peut être judicieux d'éviter les lettres/chiffres qui se ressemblent. Soit vous les supprimez, soit vous utilisez une police dont l'apparence est différente (peut-être quelque chose comme FE-Schrift utilisé sur les plaques d'immatriculation des voitures allemandes). enter image description here Un autre problème est celui d'éviter les combinaisons qui peuvent être gênantes ou offensantes. a550rgy est un exemple célèbre. Les chiffres qui 666 ou 69 peuvent être un problème. Les combinaisons de lettres comme SS, SA, NS et ainsi de suite peuvent également être un problème.

Tout se résume à la quantité de travail que vous êtes prêt à investir et à son importance.

3
liftarn

Selon votre public, il peut être plus sûr d'éviter d'utiliser des voyelles dans votre identifiant si les utilisateurs sont censés voir cet identifiant. Tant de mauvais mots sont facilement supprimés de la partie accidentelle de l'ID en supprimant les voyelles.

0
kimg85