Pour les mots de passe, j'utilise ce qui suit: deux lettres, puis deux chiffres, puis deux lettres, puis deux chiffres. Les lettres sont en minuscules. Les lettres et les chiffres sont générés aléatoirement.
Il s'avère que les mots de passe résultants sont faciles à retenir (du moins, facile pour moi; votre cerveau n'est peut-être pas câblé de la même manière que le mien).
Un bon point de tels mots de passe est qu'il est facile de calculer leur entropie: il y a 26 4 x10 4 mots de passe possibles avec ce format, tous avec la même probabilité , donc une entropie d'environ 32,09 bits (un mot de passe donné a une probabilité 1/2 32,09 d'être sélectionné). 32 bits d'entropie ne sont pas bons pour tous les usages, mais ils sont assez bons pour la plupart, y compris tous les usages où des attaques sont en ligne. Une attaque en ligne est une attaque où l'attaquant doit adresser une requête à un système "honnête" pour chaque hypothèse; par exemple. un serveur SSH. Les attaques hors ligne (où l'attaquant peut vérifier une supposition "seul", limitée uniquement par sa puissance de calcul) sont plus effrayantes et nécessiteraient un mot de passe plus fort.
N'oubliez pas que connaître le niveau de sécurité dont vous disposez est au moins important comme avoir une telle sécurité.
Bonus: voici le programme C que j'utilise pour générer ces mots de passe (compile sous Linux et FreeBSD, devrait fonctionner sur d'autres systèmes de type Unix):
/ * * Petit utilitaire de génération de mot de passe. * / # Include <stdio.h> # comprennent <stdlib.h> #include <string.h> #include <errno.h> #include <sys / types.h> # comprennent <unistd.h> # include <fcntl.h>static unsignedrandval (non signé max) {static int fd = - 1; non signé char x; if (fd < 0) {fd = open ("/ dev / urandom", O_RDONLY); if (fd < 0) {perror ("open"); exit (EXIT_FAILURE); } } pour (;;) {
non signé val; for (;;) {if (read (fd, &x, 1) < = 0) {if (errno == EINTR) continue; perror ("lire"); exit (EXIT_FAILURE); } Pause; } val = (non signé) x; if (val > = max * (256 / max)) continue; return val% max; }} static intranddigit (void) {return "abcdefghijklmnopqrstuvwxyz" [randval (26)];} static intranddigit (void) {return "0123456789" [randval (10)];} intmain (void) {printf ("% c% c % c% c% c% c% c% c \ n ", Randletter (), Randletter (), Randdigit (), Randdigit (), Randletter (), Randletter (), Randdigit (), Randdigit ()); return EXIT_SUCCESS;}