Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Insgesamt 16 Stimmen
6%
1 - Sehr gut (Man Lernt was neues!) (1)
25%
2 - Gut (Könnte ich gebrauchen) (4)
31%
3 - Befriedigend (5)
19%
4 - Ausreichend (Meiste wusste ich, aber Lerneffekt ist da) (3)
13%
5 - Mangelhaft (2)
6%
6 - Ungenügend (1)
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
// /////////////////////////////////////////////////////////////////////////// // Datei: main.cpp // /////////////////////////////////////////////////////////////////////////// // Autor: Patrick Ullmann // Erstellt: 12.08.2004 // Änderungen: 12.08.2004 (Patrick) Datei erstellt // /////////////////////////////////////////////////////////////////////////// // Beschreibung: Hauptdatei // I N C L U D E S /////////////////////////////////////////////////////////// #include <iostream> // Für Input und Output, ganz klar. #include <string> // Für std::string, wofür wohl sonst? ;-) #include <ctime> // Für std::time(); in Zeile 83 #include <algorithm> // Für std::random_shuffle (); in Zeile 63 // D E F I N I T I O N E N /////////////////////////////////////////////////// // size_t sollte es eigentlich überall geben und beschreibt den // größten Datentyp der vom Betriebssystem unterstützt wird // diverse Compiler bieten diesen Typen jedoch (noch) nicht! // Deshalb definieren wir ihn, falls es ihn nicht gibt. #ifdef size_t #ifdef _WIN32 typedef unsigned __int64 size_t; #else typedef unsigned int size_t; #endif #endif // F U N K T I O N E N /////////////////////////////////////////////////////// // ///////////////////////////////////////////////// // GLOBAL // // Erstellt ein Passwort aus groß und klein Buchstaben // sowie aus Zahlen und Zeichen. // // [in] num_highWords: Anzahl der Großbuchstaben. // [in] num_lowWords : Anzahl der Kleinbuchstaben. // [in] num_numbers : Anzahl der Zahlen. // [in] num_sings : Anzahl der Zeichen. z.B. (§!/) // // [ret] Das Passwort. // ///////////////////////////////////////////////// inline std::string generate_password (size_t num_highWords, size_t num_lowWords, size_t num_numbers, size_t num_sings) { // Die Zeichenketten. std::string high_word_string ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); // Temp-String für das Endergebnis. std::string password (""); // Durchlaufe die HighWords for(size_t i=0; i<num_highWords; ++i) { // Addiere einen zufälligen HighWord-Buchstaben auf den Temp-String. password += high_word_string[std::rand()%high_word_string.length()]; } // Das Passwort nochmal durchmischen. std::random_shuffle(password.begin(), password.end()); // Und ab damit return (password); } // ///////////////////////////////////////////////// // GLOBAL // // Einsprungspunkt des Programms // // [in] argc: Anzahl der Argumenten. // [in] argv: Die Argumente. // [in] envp: Die Umgebugnsvariablen. // // [ret] Fehlercode. // ///////////////////////////////////////////////// int main (int argc, char *argv[], char *envp[]) { // Random initialisieren std::srand (std::time(0)); // Gib ein Passwort aus mit // 20 Großbuchstaben // + 20 Kleinbuchstaben // + 10 Zahlen // + 0 Zeichen // ------------------- // 50 Zeichen Passwort std::cout << generate_password(20,20,10,0); // Damit die Console sich nicht direkt schließt. std::cin.get(); // Sollte klar sein. ;-) return 0; } |
Alter Hase
Anonymous
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
inline std::string generate_password (size_t num_highWords, size_t num_lowWords, size_t num_numbers, size_t num_signs) { // Die Zeichenketten. std::string high_word_string ("ABCDEFGHIJKLMNOPQRSTUVWXYZ"); std::string low_word_string ("abcdefghijklmnopqrstuvwxyz"); std::string numbers_string ("0123456789"); std::string signs_string ("'!§$%&()=?{}~+-*/#~<>|^°_-.:,;"); // Temp-String für das Endergebnis. std::string password (""); // Durchlaufe die HighWords for(size_t i=0; i<num_highWords; ++i) { // Addiere einen zufälligen HighWord-Buchstaben auf den Temp-String. password += high_word_string[std::rand()%high_word_string.length()]; } // Durchlaufe die LowWords for(size_t i=0; i<num_lowWords; ++i) { // Addiere einen zufälligen HighWord-Buchstaben auf den Temp-String. password += low_word_string[std::rand()%low_word_string.length()]; } // Durchlaufe die Nummern for(size_t i=0; i<num_numbers; ++i) { // Addiere einen zufälligen HighWord-Buchstaben auf den Temp-String. password += numbers_string[std::rand()%numbers_string.length()]; } // Durchlaufe die Zeichen (signs) for(size_t i=0; i<num_signs; ++i) { // Addiere einen zufälligen HighWord-Buchstaben auf den Temp-String. password += signs_string[std::rand()%signs_string.length()]; } // Das Passwort nochmal durchmischen. std::random_shuffle(password.begin(), password.end()); // Und ab damit return (password); } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
int main (int argc, char *argv[], char *envp[]) { int highWord, lowWord, numbers, signs; // Random initialisieren std::srand (std::time(0)); // Fragt die Anzahl der // Großbuchstaben // + Kleinbuchstaben // + Zahlen // + Zeichen // ab std::cout << "Anzahl Großbuchstaben: "; std::cin >> highWord; std::cout << "Anzahl Kleinbuchstaben: "; std::cin >> lowWord; std::cout << "Anzahl Zahlen: "; std::cin >> numbers; std::cout << "Azahl Zeichen: "; std::cin >> signs; // Gib ein Passwort aus mit // <highWord> Großbuchstaben // + <lowWord> Kleinbuchstaben // + <numbers> Zahlen // + <signs> Zeichen // ------------------- // 50 Zeichen Passwort std::cout << generate_password(highWord,lowWord,numbers,signs); // Damit die Console sich nicht direkt schließt. std::cin.get(); // Sollte klar sein. ;-) return 0; } |
Zitat von »"Sk!p"«
also nen passwort-knacker fänd ich interessanter
Werbeanzeige