Generowanie hasła

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

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.