Generowanie hasła w programie polega zwykle na wielokrotnym losowaniu znaków z przygotowanej puli znaków i dopisywaniu ich do wyniku.
Przykładowa pula może zawierać:
- małe litery:
a-z, - wielkie litery:
A-Z, - cyfry:
0-9, - symbole, np.
!@#$%.
Przykład w C
var random = new Random();
string pula = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
string haslo = "";
for (int i = 0; i < 8; i++)
{
int indeks = random.Next(0, pula.Length);
haslo += pula[indeks];
}
Ten kod tworzy hasło o długości dokładnie 8 znaków. Każdy znak jest losowany z podanej puli.
„Może zawierać” a „zawiera”
Na egzaminie ważne jest rozróżnienie:
- może zawierać małe litery, wielkie litery i cyfry — ponieważ te znaki są w puli,
- zawiera małe litery, wielkie litery i cyfry — to nie musi być prawda, bo losowanie może wybrać np. same cyfry albo same małe litery.
Sama obecność znaków w puli nie gwarantuje, że każdy typ znaku pojawi się w wyniku.
Długość hasła
Długość hasła zależy od liczby powtórzeń pętli. Dla pętli:
for (int i = 0; i < 8; i++)
instrukcje wykonają się dla i = 0, 1, 2, 3, 4, 5, 6, 7, czyli łącznie 8 razy. Wynik będzie więc miał 8 znaków.
Symbole w haśle
Hasło może zawierać symbole tylko wtedy, gdy symbole znajdują się w puli znaków. Jeśli pula zawiera wyłącznie litery i cyfry, to wylosowane hasło nie będzie zawierało znaków specjalnych.