introduzione
Apparentemente, questa domanda è stata posta qui e purtroppo è stata chiusa. Ho pensato che fosse una buona idea riprovarci, ma fatto bene.
XKCD esamina il modo in cui siamo addestrati a utilizzare password difficili da ricordare, pensando che sia sicuro, ma invece impiegherebbe un computer a 3 giorni per decifrare. Il rovescio della medaglia, ricordare 4-5 parole fa apparire la password Intropy di Kuan ed è facile da ricordare. Pazzo come funziona, eh?
Sfida
Oggi il lavoro è creare 5 password usando le parole. 4 parole per password e un minimo di 4 lettere per parola, ma non un massimo. La password Intropy di Kuan dovrà essere calcolata per ogni password, ma non verrà impostato un minimo forzato.
Qual è l'intropia della password di Kuan?
Kuan's Password Intropy è una misura di quanto sia imprevedibile una password, secondo Kuan. V'è un semplice calcolo: E = log 2 (R) * L . E essendo Intropia password di Kuan, R essendo intervallo di caratteri disponibili e L per lunghezza password.
La gamma di caratteri disponibili si spiega da sé. È la gamma di caratteri che può avere una password, in questo caso è maiuscola e minuscola. Poiché l'alfabeto contiene 26 caratteri, 26 x 2 = 52 caratteri nell'intero intervallo della password.
Anche la lunghezza della password è autoesplicativa. È la lunghezza totale della password dopo la creazione.
vincoli
- Nessun input
- Una parola non può riapparire nella stessa password.
- Nessun simbolo o numero consentito in una password.
- 4 parole per password, ma un minimo forzato di 4 lettere per parola.
- Nessuno spazio tra le parole.
- Non è possibile generare più volte la stessa password.
- Ogni parola deve essere in maiuscolo in una password.
- L'output deve essere leggibile dall'uomo, deve essere distanziato. Deve includere anche la password di Kuan Intropy della password con essa usando l'equazione di Kuan's Password Intropy sopra.
- Dizionario . È necessario utilizzarlo, scaricarlo come file di testo e integrarlo di conseguenza. Questa sarà la lista da cui prendi le parole. Il tuo codice dovrebbe supporre che sia disponibile.
- Questo è code-golf , vincono i byte più brevi.
Produzione
TriedScarProgressPopulation 153.9
TryingPastOnesPutting 119.7
YearnGasesDeerGiven 108.3
DoubtFeetSomebodyCreature 142.5
LiquidSureDreamCatch 114.0
N
simbolo dell'insieme S
, l'entropia della password è log2(|S|)*N
. Qui la dimensione del set di simboli è la dimensione del dizionario ( |S|=4284
) e il numero di simboli è il numero di parole ( N=4
), quindi l'entropia per ogni password è 48.3
.
3t1ta#asd
), l'entropia sarà il logaritmo del numero di possibili password. Se scegli sempre 4 parole in modo uniforme in modo casuale da un dizionario di 4284 parole, allora ci sono 4284 ^ 4 password, ognuna con registro entropiay (4284) * 4 ≈ 48.26.