Random PW Generator
Revision 0:4b30ded991e6, committed 2020-05-03
- Comitter:
- stefanblack
- Date:
- Sun May 03 14:28:47 2020 +0000
- Commit message:
- Nr74
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun May 03 14:28:47 2020 +0000 @@ -0,0 +1,99 @@ +/* + +C++ Kurs 6ABELI SM +Aufgabe 3 Übung NR 74 -- Passwortgenerator +Stefan Schwarz + +Übung Nr.74: + +Erstelle ein Programm/Funktion welche/s ein zufälliges Passwort erzeugt. +Als Parameter soll die Länge sowie die Art der darin vorkommenden Zeichen übergeben werden können. +Zur Auswahl sollen stehen: Kleinbuchstaben, Großbuchstaben, Zahlen und Sonderzeichen. +Jede beliebige Kombination der Parameter soll möglich sein. + +*/ + + +#include <algorithm> +#include <stdio.h> +#include <iostream> +#include <cstdlib> +#include <ctime> + + +using namespace std; + +// function generates new password based on given parameters +string genpw(int lengh, string number, string smallletter, string bigletter, string signs); + + +int main() +{ + int lengh; + string numbers; + string smallletter; + string bigletter; + string signs; + +//setting parameters via Console + cout<<" Wilkommen im Passwortgenerator !"<< endl << endl; + again: + cout << "Wie lange soll das Passwort sein? " ; + cin >> lengh; + cout << "Ziffern? J/N "; + cin.get(); + cin >> numbers; + cin.get(); + cout << "Kleinbuschstaben? J/N " ; + cin >> smallletter; + cout << "Großbuschstaben? J/N " ; + cin >> bigletter; + cout << "Sonderzeichen? J/N " ; + cin >> signs; + + // check if theres at least one chosen parameter + if(numbers!="J" && smallletter!="J" && bigletter!="J" && signs!="J") + { + cout << "Min 1 Parameter muss gewählt werden! Bitte erneute Eingabe:"<<endl; + goto again; + } + +//print newly generated password + cout << endl << genpw(lengh,numbers,smallletter,bigletter,signs); + + +} + + +// genpw function generates new password based on given parameters +string genpw(int lengh, string number, string smallletter, string bigletter, string signs ){ + + string newpw = ""; + string coderes = ""; + string numb = "123456789"; + string slbs = "abcdefghijklmnopqrstuvwxyz"; + string blbs = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + string sgn = "@!§$%&/()=?*':;"; + + if (number == "J") + coderes += numb; + if (smallletter == "J") + coderes += slbs; + if (bigletter == "J") + coderes += blbs; + if (signs == "J") + coderes += sgn; + + srand(time(0)); + + for (unsigned int i = 0; i < lengh; i++) + { + random_shuffle(coderes.begin(), coderes.end()); //shuffeling available characters in addition to randomly picked ones + + int sizeres= sizeof(coderes); // + newpw+=coderes[rand()% sizeres]; //building newpw string randomly + } + return "Das generierte Passwort lautet: "+ newpw; + + +}