Generatory ciągów
Ostatnio mnie wzięło na stworzenie własnej biblioteki w języku C++, która to biblioteka będzie zawierała różne rzeczy.
Pierwszy generator ciągów już pozaliście w czasie czytania bloga. Otóż jest funkcja tworząca tablicę z zapisu „a-zA-Z”. Ta funkcja pochodzi z K&R ANSI C, a jej kod można znaleźć w tym poście.
Funkcja dla C++ zmieniła się tym, że wynik działania jest zwracany do vector<char>.
Drugim generatorem ciągów jest generator bazujący na przed zdefiniowanym alfabecie, który później generuje każdą możliwą kombinację przy użyciu tego słownika.
Taki generator może służyć do ataku typu brute-force.
Klasa WordGenerator posiada bardzo prosty interface:
- (konstruktor) WordGenerator(void)
Alfabet jest ustawiony na „a-zA-Z”. Pierwszym słowem jest „a” - (konstruktor) WordGenerator(char* range)
Alfabet jest tworzony na podstawie podanego ciągu, interpretacja ciągu jest taka jak opisana w pierwszym generatorze. - (konstruktor) WordGenerator(char *range, std::string firstWord)
firstWord – pozwala na ustawienie pierwszego słowa od którego będzie generowane kolejne. - (funkcja) std::string getCurrent()
Zwraca ciąg który został wygenerowany - (funkcja) std::string generateNext()
Generuje nowy ciąg który jest zwracany przez funkcje.