Ci sono due generatori di password su ss64.com:
Come funzionano
Ho creato versioni standalone di loro, oltre alla copia del codice HTML / Javascript originale versioni, se vuoi studiarle, ma ecco come funzionano:
Questa sezione spiega come funziona il generatore di password, in modo tale che sia possibile implementare una versione autonoma che non dipenda dal fare affidamento su un sito Web di terzi.
- Hai una password principale, diciamo
foo
- Genera una password per un sito o servizio specifico, diciamo
stackexchange
-
Calcoli la somma SHA1 (versione standard) o la somma SHA256 (versione strong) della stringa
foo:stackexchange
.$ echo -n "foo:stackexchange" | sha1sum #standard version b99341502484edbc43ec35a5f94be8e5de7ca53a *- $ echo -n "foo:stackexchange" | sha256sum #strong version c6ac66fdb639821bcc322f186fb1214d241f35ba2a91cb660daf0a284ac19a47 *-
-
Applichi la trasformazione Base64 sulla sequenza di byte la cui rappresentazione esadecimale è il checksum generato in precedenza:
$ printf "\xb9\x93\x41\x50\x24\x84\xed\xbc\x43\xec\x35\xa5\xf9\x4b\xe8\xe5\xde\x7c\xa5\x3a" | base64 uZNBUCSE7bxD7DWl+Uvo5d58pTo= $ printf "\xc6\xac\x66\xfd\xb6\x39\x82\x1b\xcc\x32\x2f\x18\x6f\xb1\x21\x4d\x24\x1f\x35\xba\x2a\x91\xcb\x66\x0d\xaf\x0a\x28\x4a\xc1\x9a\x47" | base64 xqxm/bY5ghvMMi8Yb7EhTSQfNboqkctmDa8KKErBmkc=
-
(versione strong) sostituisci + con E e / con a, e prendi i primi 20 caratteri
- (versione standard) prendi i primi 8 caratteri e poi aggiungi
1a
alla fine della password per assicurarti che ci sia almeno una cifra e una lettera
Pertanto, con la password principale foo
, e per il sito specifico stackexchange
, la password generata standard è uZNBACSE1a
e la password generata strong è xqxmabY5ghvMMi8Yb7Eh
.
Ora le domande
- La versione strong è davvero più strong della versione standard? Sarebbe ancora più strong se la versione standard usasse anche SHA256?
- ammesso che scelgo una buona chiave master (non foo, piuttosto più di 10 caratteri casuali), sono piuttosto al sicuro con queste password generate?
- Quali possono essere altri svantaggi di questo approccio verso la creazione di password?