web-dev-qa-db-fra.com

Comment rendre une grande valeur aléatoire plus lisible pour les humains?

J'ai une forte valeur aléatoire qui ressemble à 4?1V*8G?ۑL?? (c'est en fait encore pire car certains caractères ont été remplacés par ? en le collant ici).

Je peux le convertir en une valeur hexidécimale telle que c8e40ef3764af28d06e25020255a51ed, mais c'est encore assez long.

Pour le raccourcir, je pense utiliser des chiffres et l'alphabet complet (anglais) au lieu de seulement 0 à 9 et de a à f.

ÉDITER. D'un point de vue technique, je pense que j'aurai besoin d'un total de 64 caractères pour encoder les valeurs de longueur minimale, ce qui signifie 0-9, a-z, A-Z, plus deux autres tels que * et !. Je pourrais exclure certaines lettres, mais je devrai utiliser d'autres caractères tels que % pour chaque j'exclus. Cela se traduira par quelque chose comme jKTB*BbNswbkXJpjy7!4X3. Est-ce pire que quelque chose comme c8e40ef3764af28d06e25020255a51ed? Si je prends cette route, quels caractères utiliser?

Des questions:

  1. Faut-il utiliser des lettres minuscules et majuscules? Cela raccourcira la chaîne, mais pourrait rendre la saisie plus difficile.
  2. Faut-il exclure des caractères? Par exemple, 0 (zéro) et O (lettre o) peuvent être confondus ainsi que 1 (un) et l (lettre L), et U peut accidentellement apparaître obscène.
  3. Doit-il être formaté avec des tirets, et si oui, comment?
  4. D'autres recommandations?
3
user1032531

1) Ne faites absolument pas de distinction entre les majuscules et les minuscules. (Donc, je peux taper abc ou Abc ou aBc, et cela fonctionne.)

(En présentant la chaîne, n'utilisez que des majuscules, bien sûr: elles sont plus claires. Mais l'utilisateur peut entrer l'une ou l'autre sans différence.)

2) N'utilisez absolument aucune des lettres/chiffres "problématiques" qui ressemblent à d'autres lettres/chiffres, omettez-les complètement de votre mix.

3) Absolument présent en groupes de quatre. Et seulement quatre, je n'ai pas dit un groupe de trois à la fin.

(Séparez avec un tiret ou un espace, peu importe. Mais assurez-vous qu'à l'entrée, ils peuvent être entrés avec un trait d'union, un espace ou sans séparateur.)

4) Notez que, et cela aide beaucoup, une fois qu'il est plus long qu'environ 16 ou 20 caractères, peu importe la durée. si ça va être 20, ce n'est pas différent si ça finit par être 28 ou 32. (Physiquement, il est extrêmement improbable que cela soit jamais nécessaire, mais je dis juste.)

Mais voici le point critique:

Devriez-vous utiliser uniquement des lettres, des chiffres uniquement ou un mélange de lettres et de chiffres?

Maintenant: les fans d'arithmétique seront prompts à souligner que "la chaîne peut être plus courte avec un ensemble plus long!". Mais je suis prompt à souligner que la longueur n'a pas d'importance du tout; il est impossible de se souvenir de toute façon, il n'y a donc aucune différence.

Donc, en réponse à la question critique, si vous utilisez uniquement des lettres, des chiffres uniquement ou un mélange de lettres et de chiffres .... IMO, vous êtes en fait de loin préférable à tilisez simplement des chiffres.

8762 1289 0900 1928 2882 0912 3871

est tout simplement plus KISSer que

B3JK MUXC 4KPA 31DG

Avec le "mix" il y a aussitôt beaucoup de confusions possibles .. "est-ce octal?" "Pourquoi un groupe n'a-t-il pas de numéros, est-ce une erreur?" "C'est un 'i'?" - le tout est juste ennuyeux.

(Lors de l'utilisation de chiffres uniquement, les problèmes (1) et (2) ci-dessus disparaissent entre autres!)


Notez que, en effet, les numéros de carte de crédit à 16 chiffres en sont un exemple. Bien sûr, ils auraient pu ajouter des lettres au mélange (pour "plus de combinaisons"). Mais pensez à quel point ce serait tendu; ils ont fait le choix KISS.

Une autre illumination: si vous avez affaire à des chaînes extrêmement courtes - disons deux lettres puis trois chiffres - et toujours dans cet ordre fixe, chaque fois que vous le voyez, les deux premières sont des lettres et les trois suivantes sont des chiffres - alors vous pouvez vous en passer d'avoir lettres (pour avoir plus de combinaisons). En effet ... c'est ce que sont les plaques d'immatriculation des voitures. N'importe quoi de plus .. les lettres doivent être retirées du mix, pas KISS et aucun avantage.

5
Fattie
  1. Non, ne mélangez pas Upper et Lower (comme l'a dit Joe Blow), mais je ne sais pas lequel vous devriez préférer, car Upper Case est facile à comprendre, mais vous devez activer le verrouillage des majuscules ou appuyer sur Maj.

  2. Si possible, excluez tout caractère, mais nécessiterait la touche Maj. Cela ne fera que ralentir l'utilisateur et les risques d'erreurs augmenteront.

  3. Utilisez l'espace pour séparer les caractères, d'autres ne feront que confondre l'utilisateur.

  4. Vous pouvez utiliser des stratégies chunking pour le rendre encore meilleur.

1
Harshit Choudhary