Generator haseł
Przygotowanie
- Utwórz nowy projekt za pomocą
cargocargo new password-generator - Przejdź do katalogu projektu i otwórz plik
Cargo.toml. - W sekcji
dependenciesdodaj zależność do skrzynki o nazwierand[dependencies] rand = "0.9.0"
Funkcja generowania silnego hasła
- Utwórz plik
src/main.rsi dodaj poniższy kod - 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. - 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.
- 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 } - Napisz test jednostkowy, który sprawdzi czy wygenerowane hasło ma odpowiednią długość
- 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
- Rozszerz funkcję
generate_passwordo parametr, który pozwoli na wybór zestawu znaków, z którego mają być losowane znaki do hasła. Nowy parametr o nazwiecharsetspowinien 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.
- W zależności od wartości parametru
charsetsfunkcja 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 tablicacharsetsjest 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 tablicycharsetspowinny być ignorowane. - Napisz test jednostkowy, który sprawdzi czy wygenerowane hasło zawiera tylko znaki z wybranych zestawów znaków.
Last updated on