Per le password, utilizzo quanto segue: due lettere, poi due cifre, poi due lettere, quindi due cifre. Le lettere sono minuscole. Lettere e cifre vengono generate casualmente.
Si scopre che le password risultanti sono facili da ricordare (almeno, facile per me; il tuo cervello potrebbe non essere cablato allo stesso modo del mio).
Un buon punto di queste password è che è facile calcolare la loro entropia: ci sono 26 4 x10 4 possibili password con questo formato, tutte con la stessa probabilità , quindi un'entropia di circa 32,09 bit (una data password ha probabilità 1/2 32,09 di essere selezionata). 32 bit di entropia non vanno bene per tutti gli utilizzi, ma sono abbastanza buoni per la maggior parte, compreso ogni utilizzo in cui gli attacchi sono online. Un attacco online è quello in cui l'aggressore deve fare una richiesta a un sistema "onesto" per ogni ipotesi; per esempio. un server SSH. Gli attacchi offline (in cui l'aggressore può controllare un'ipotesi "da solo", limitato solo dalla sua potenza di calcolo) sono più spaventosi e richiederebbero una password più forte.
Ricorda che sapere quanta sicurezza hai almeno quanto importante quanto avere tale sicurezza.
Bonus: ecco il programma C che uso per generare quelle password (si compila sotto Linux e FreeBSD, dovrebbe funzionare su altri sistemi Unix-like):
/ * * Piccola utility per la generazione della password. * / # Include <stdio.h> # includono <stdlib.h> # includono <string.h> # includono <errno.h> # includono <sys / types.h> # includono <unistd.h> # includono <fcntl.h>static unsignedrandval (max unsigned) {static int fd = - 1; carattere senza segno x; if (fd < 0) {fd = open ("/ dev / urandom", O_RDONLY); if (fd < 0) {perror ("open"); exit (EXIT_FAILURE); }} per (;;) {
val senza segno; for (;;) {if (read (fd, &x, 1) < = 0) {if (errno == EINTR) continue; perror ("leggi"); uscita (EXIT_FAILURE); } rompere; } val = (senza segno) x; if (val > = max * (256 / max)) continua; return val% max; }} static intrandletter (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;}