Skip to Content
RozdziałyPosiadanieGenerator haseł

Generator haseł

Przygotowanie

  1. Utwórz nowy projekt za pomocą cargo
    cargo new password-generator
  2. Przejdź do katalogu projektu i otwórz plik Cargo.toml.
  3. W sekcji dependencies dodaj zależność do skrzynki o nazwie rand
    [dependencies] rand = "0.9.0"

Funkcja generowania silnego hasła

  1. Utwórz plik src/main.rs i dodaj poniższy kod
  2. Napisz funkcję generate_password, która wygeneruje losowy ciąg znaków o określonej długości. Zacznij od napisania sygnatury funkcji - zastanów się jaki jest typ zwracany przez funkcję oraz jakie parametry przyjmuje.
  3. Utwórz tablicę znaków zawierającą wszystkie znaki, które mogą wystąpić w haśle, a następnie wygeneruj losowy indeks, który posłuży do wybrania znaku z tablicy.
  4. Do generowania liczb losowych wykorzystaj funkcje z biblioteki rand, której przykład użycia znajdziesz na poniższym fragmencie kodu:
    use rand::{rng, Rng); fn main() { let mut rng = rand::rng(); // creates a new random number generator let rand_number = rng.random_range(0..10); // generates random number between 0 and 10 }
  5. Napisz test jednostkowy, który sprawdzi czy wygenerowane hasło ma odpowiednią długość
  6. Napisz program (z funkcją main), który wygeneruje 5 losowych haseł o długości zadanej przez użytkownika. Wygenerowane hasła powinny zostać wypisane na konsolę.

Wybór zestawu znaków

  1. Rozszerz funkcję generate_password o parametr, który pozwoli na wybór zestawu znaków, z którego mają być losowane znaki do hasła. Nowy parametr o nazwie charsets powinien być tablicą przechowującą referencje do łańuchów znakowych, a elementy tablicy powinny przyjmować jedną z wartości:
    • lowercase - małe litery,
    • uppercase - duże litery,
    • digits - cyfry,
    • special - znaki specjalne.
  2. W zależności od wartości parametru charsets funkcja powinna zwracać hasło złożone z małych liter, dużych liter, cyfr lub znaków specjalnych lub dowolnej kombinacji tych zestawów znaków. Jeśli tablica charsets jest pusta lub zawiera (wszystkie) błędne wartości, funkcja powinna zwrócić hasło złożone z wszystkich typów znaków. Błędne wartości w tablicy charsets powinny być ignorowane.
  3. Napisz test jednostkowy, który sprawdzi czy wygenerowane hasło zawiera tylko znaki z wybranych zestawów znaków.
Last updated on