Autor Beitrag
Bloomquist
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 06.08.12 16:07 
Hallo,

da ich für ein Datenbank-Projekt einen StringGenerator benötigte suchte ich im Netz eine entsprechende Methode und fand sie in einem dt. Nachbarforum.
Für die DB ist das entsprechende Tool natürlich anders (erzeugt eine Textdatei mit den entsprechenden Daten), jedoch habe ich mir daraus einen Passwortgenerator gebastelt.

Könntet Ihr bitte mal über das Tool drüber schauen und mir Verbesserungsmöglichkeiten aufzeigen? Persönlich bin ich kaum in der Lage alle Eventualitäten vorauszuschauen.


Die ZIP-Datei enthält eine EXE und die entspr. Config-Datein.

Sie nutzt NET 3 und WPF.


Vielen Dank.

Edit: Es geht mir hauptsächlich um Bedienbarkeit und evtl. provozierte Fehler.
Einloggen, um Attachments anzusehen!
Pepp3r
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 82



BeitragVerfasst: Mo 06.08.12 19:29 
wäre nicht schlecht, wenn man mehr als 5 zeichen generieren könnte.
HeftCD
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 91
Erhaltene Danke: 9

Win2k, WinXP, Win7, Win8
Delphi 3 Pro, Delphi 5, Delphi 7, Turbo Delphi, BC1
BeitragVerfasst: Mo 06.08.12 19:31 
mhh, der Start braucht irgendwie lange.


"DAS FELD DARF NICHT LEER SEIN."

mhh, dann gib doch nen Wert vor.
mindestens 10

aber auch recht zügig bei 99999
geschätzte 1 Sekunde oder etwas weniger auf 2x2,4 GHz,

zudem isser noch sehr vergesslich .. d.h. man muß jedes Mal alles neu eingeben.

und leider für nen Passwortgenerator zwar schön klein, aber ...

nicht auf jedem System ist .NET 3 installiert.




wärenatürlich für ein Sicherheitstool angenehm für den Nutzer, wenn der Source veröffentlicht wäre, bzw. wenn wenigstens ein Hinweis auf den Auswahl/Randomisierungs-Algorithmus wäre.
Bloomquist Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 07.08.12 10:22 
user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:
mhh, der Start braucht irgendwie lange.

Ich vermute mal, das liegt an WPF oder .Net. Im Programm selbst wird bei Start nichts "getan".
Weitere Starts gehen zügig.

user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:

zudem isser noch sehr vergesslich .. d.h. man muß jedes Mal alles neu eingeben.

Da bin ich wohl zu sehr von mir selbst ausgegangen ;)
Natürlich könnte ich eine Speicherung vornehmen, ist ja durch die Settings kein Problem.

user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:

nicht auf jedem System ist .NET 3 installiert.

Leider weiss ich noch nicht, wie ich das auf eine kleinere Version umstellen kann.
Wenn ich es in den Projekteinstellungen ändere, geht gar nichts mehr.

user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:
wärenatürlich für ein Sicherheitstool angenehm für den Nutzer, wenn der Source veröffentlicht wäre, bzw. wenn wenigstens ein Hinweis auf den Auswahl/Randomisierungs-Algorithmus wäre.

Ich habe die Methode von Cord Worthmann aus www.mycsharp.de/wbb2...ightuser=0#post29981 genommen.

Der Rest ist dann:

ausblenden volle Höhe 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:
private void btnGenerate_Click(object sender, RoutedEventArgs e)
        {
            int length; // Hilfsvariable: Textbox nur Int-Werte

            if (tbLength.Text == "")
                MessageBox.Show("Das Feld \"Länge\" darf nicht leer sein!""Fehler!", MessageBoxButton.OK, MessageBoxImage.Error);
            else if (!int.TryParse(tbLength.Text, out length))
                MessageBox.Show("Das Feld \"Länge\" darf nur Ganzzahlen enthalten!""Fehler!", MessageBoxButton.OK, MessageBoxImage.Error);
            else
            {
                string numbers = "123456789";
                string charsTemp;   // Hilfsvariable: Zusammensentzen der benutzten Chars

                if (rbAlphabet.IsChecked == true)
                {
                    string charsComplete = "aKMsByScldgUOHftjipNwITbVzFqJuDQnECXLrmGZxYekhWPRvoA";
                    string charsReadable = "aPpDnKymBVYzbqShjEZMrGUfgdcvNQtkFHXTReJxLCiwWusA";
                    string charsUmlauts = "äÜöÄüÖ";
                    string charsSpecial = Properties.Settings.Default.SpecialChars;

                    charsTemp = charsComplete;
                
                    if (chkReadonly.IsChecked == true)
                        charsTemp = charsReadable;
                    if (chkSpecialChars.IsChecked == true)
                        charsTemp += charsSpecial;
                    if (chkUmlauts.IsChecked == true)
                        charsTemp += charsUmlauts;
                    if (chkNumbers.IsChecked == true)
                        charsTemp += numbers;
                    txtResult.Text = Tools.Generate(int.Parse(tbLength.Text), charsTemp);
                }
                else if (rbNumbers.IsChecked == true)
                {
                    charsTemp = numbers;
                    txtResult.Text = Tools.Generate(int.Parse(tbLength.Text), charsTemp);
                }
                else
                {
                    if (tbOwn.Text == "")
                        MessageBox.Show("Es müssen Zeichen im Feld \"Eigene Auswahl\" eingetragen werden!""Fehler!", MessageBoxButton.OK, MessageBoxImage.Error);
                    else
                    {
                        charsTemp = tbOwn.Text;
                        txtResult.Text = Tools.Generate(int.Parse(tbLength.Text), charsTemp);
                    }
                }
            }


Grüße