Wprowadzenie
Najwyraźniej pytanie zostało tu zadane i niestety zostało zamknięte. Pomyślałem, że warto spróbować ponownie, ale zrobiłem to dobrze.
XKCD patrzy na to, jak jesteśmy szkoleni w używaniu „trudnych do zapamiętania haseł”, myśląc, że jest bezpieczny, ale zamiast tego złamanie komputera zajęłoby 3 dni. Z drugiej strony, zapamiętywanie 4-5 słów podnosi Intropy Kuan i jest łatwe do zapamiętania. Szalony, jak to działa, co?
Wyzwanie
Obecnie zadaniem jest utworzenie 5 haseł za pomocą słów. 4 słowa na hasło i minimum 4 litery na słowo, ale nie maksimum. Intropy hasła Kuan będą musiały zostać obliczone dla każdego hasła, ale wymuszone minimum nie zostanie ustawione.
Co to jest intropy hasła Kuan?
Według Kuan, hasło Intropy Kuana jest miarą nieprzewidywalności hasła. Jest proste obliczenie: E = log 2 (R), * L . E oznacza Intropy hasła Kuan, R oznacza zakres dostępnych znaków, a L długość hasła.
Zakres dostępnych znaków jest oczywisty. Jest to zakres znaków, które może zawierać hasło, w tym przypadku jest to duża i mała litera. Ponieważ w alfabecie jest 26 znaków, 26 x 2 = 52 znaków w całym zakresie hasła.
Długość hasła jest również oczywista. Jest to całkowita długość hasła po utworzeniu.
Ograniczenia
- Brak wejścia.
- Słowo nie może pojawić się ponownie z tym samym hasłem.
- Hasło lub cyfry nie są dozwolone.
- 4 słowa na hasło, ale wymuszone minimum 4 litery na słowo.
- Brak spacji między słowami.
- Nie można wygenerować tego samego hasła w kółko.
- Każde słowo musi być pisane wielkimi literami w haśle.
- Wyjście musi być czytelne dla człowieka, musi być rozstawione. Musi również zawierać hasło Kuan wraz z nim przy użyciu równania hasła Kuan powyżej.
- Słownik . Musisz tego użyć, pobrać go jako plik tekstowy i odpowiednio zintegrować. To będzie lista, z której pobierasz słowa. Twój kod powinien zakładać, że jest dostępny.
- To jest golf golfowy , najkrótsze bajty wygrywają.
Wydajność
TriedScarProgressPopulation 153.9
TryingPastOnesPutting 119.7
YearnGasesDeerGiven 108.3
DoubtFeetSomebodyCreature 142.5
LiquidSureDreamCatch 114.0
N
symbole z zestawu S
, entropia hasła to log2(|S|)*N
. Tutaj rozmiar zestawu symboli jest rozmiarem słownika ( |S|=4284
), a liczba symboli to liczba słów ( N=4
), więc entropia dla każdego hasła wynosi 48.3
.
3t1ta#asd
), entropia będzie logarytmem liczby możliwych haseł. Jeśli zawsze wybierasz losowo 4 słowa równomiernie ze słownika 4284-słowowego, wówczas masz 4284 ^ 4 hasła, każde z logiem entropijnym₂ (4284) * 4 ≈ 48,26.