Przejdź do głównej treści
  1. Strona główna
  2. Technik programista
  3. INF.04
  4. Pytanie

Kwalifikacja: INF.04 - Projektowanie, programowanie i testowanie aplikacji

Zawód: Technik programista

Kategorie: Programowanie Bezpieczeństwo aplikacji

Słowa kluczowe: Generowanie hasła Indeksowanie stringa w C# Operator += w C# Pętla for w C# Random.Next w C# Random.Next() i wyłączna górna granica w C#

Zamieszczony kawałek kodu w języku C# tworzy hasło. Wskaż prawdziwe stwierdzenie dotyczące cech tego hasła?
var random = new Random();
string pulaZnakow =
    "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
int dlPuli = pulaZnakow.Length - 1;
char znak;
string wynik = "";

for(int i = 0; i < 8; i++)  {
    znak = pulaZnakow[random.Next(0, dlPuli)];
    wynik += znak;
}

Fragment programu w języku C# generuje hasło, które zawiera małe i wielkie litery oraz cyfry. W kodzie widzimy, że zmienna pulaZnakow zawiera wszystkie małe litery alfabetu, wszystkie wielkie litery oraz cyfry od 0 do 9. Zmienna dlPuli przechowuje długość ciągu znaków, co umożliwia losowe wybieranie znaków z pełnego zakresu dostępnych znaków. W pętli for odbywa się iteracja 8 razy, co oznacza, że każde generowane hasło ma długość 8 znaków. Każdy znak jest losowo wybierany z puli, co zapewnia różnorodność i brak uprzedzeń w doborze znaków. Warto również zwrócić uwagę na praktyczne użycie klasy Random, która jest standardem w przypadkowej generacji danych w C#. Takie podejście jest zgodne z najlepszymi praktykami, gdzie hasła powinny mieć różnorodne znaki, co zwiększa ich siłę i trudność złamania. Dobrym pomysłem jest również dodanie symboli specjalnych dla jeszcze większego bezpieczeństwa, co można łatwo zaimplementować modyfikując pule dostępnych znaków.
Analizując przedstawiony fragment kodu, możemy odrzucić kilka błędnych przekonań zawartych w proponowanych odpowiedziach. Niektóre błędne odpowiedzi sugerują, że hasło może zawierać symbole. Jednak przeglądając zmienną pulaZnakow, widać, że nie zawiera ona żadnych symboli specjalnych, a jedynie małe i wielkie litery oraz cyfry. Inne niepoprawne stwierdzenie mówi, że hasło może być co najwyżej 7-znakowe z powodu zmiennej i. W rzeczywistości, zmienna i wskazuje na iterację pętli kontrolowanej przez warunek i < 8, co oznacza, że hasło jest dokładnie 8-znakowe, a nie 7-znakowe lub krótsze. Kolejna niepoprawna sugestia dotyczy tego, że hasło jest dłuższe niż 8 znaków oraz zawiera symbole, co również jest niezgodne z analizą kodu. Ważne jest, aby rozumieć, jak działają pętle i jaka jest rola zmiennych w kodzie generacji haseł. W zaawansowanych systemach zabezpieczeń często dodaje się symbole specjalne do puli znaków, jednak ten konkretny kod tego nie czyni. Dobrze jest pamiętać, że w bezpieczeństwie kluczowa jest nie tylko długość hasła, ale także jego złożoność i różnorodność użytych znaków. Prawidłowa analiza kodu pozwala uniknąć błędnych założeń i dostarcza solidnych podstaw do zrozumienia mechanizmów generacji losowych haseł.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.