Passwort Generator

  • Hallo zusammen,

    ich hab nun mein erstes Programm fertig, das ich nun auch präsentieren kann.

    Passwort Generator - Zum schnellen und einfachen Erstellen von Passwörtern


    [Blockierte Grafik: http://autoit.spacequadrat.de/selfmade/Passw…ator%20Main.JPG]


    Version: 1.0.1

    Sprache: Englisch

    Auswählbare Zeichen (zur Zeit):

    - Großbuchstaben
    - Kleinbuchstaben
    - Zahlen
    - Minus-Zeichen
    - Unterstrich
    - Klammern
    - Sonderzeichen

    Funktionen:

    - Es können sofort mit einer Einstellung mehrere Passwörter erstellt werden
    - Markieren und "Copy"-Button, kopiert das Passwort in die Zwischenablage
    - Die Anzahl der Zeichen kann eingeben werden, so können passend wie jeweiligen Passwörter erstellt werden


    Weitere Ideen für das Programm:
    Ich arbeite z.Z. schon wieder an einer neueren Version. Diese soll enthalten:

    - Passwortvorlagen (Es kann direkt der Verwendungszweck ausgewählt werden, wie z.B. ein Wlan PW: 64 Zeichen)

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;******************************************
    ;Variablen
    ;******************************************

    [/autoit] [autoit][/autoit] [autoit]

    Dim $code
    Dim $alte = ""
    Dim $ver = "1.0.1"
    Dim $name = "Pass_Gen"
    Global $password = ""
    Global $key[7]
    $key[0] = '1234567890'
    $key[1] = 'abcdefghijklmnopqrstuvwxyz'
    $key[2] = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    $key[3] = '_'
    $key[4] = '@€µ²³°!§$%&/=|,.-;:_#+*~?\'
    $key[5] = '-'
    $key[6] = '<>()[]'
    Dim $auswahl[7]
    $auswahl[2] = False
    $auswahl[1] = False
    $auswahl[5] = False
    $auswahl[3] = False
    $auswahl[6] = False
    $auswahl[0] = False
    $auswahl[4] = False

    [/autoit] [autoit][/autoit] [autoit]

    ;******************************************
    ;Gui
    ;******************************************

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ### Form=c:\users\johannes\desktop\passwort generator\passwort generator.kxf
    $hGui = GUICreate("Passwort Generator v. 1.0.1", 608, 385, 700, 265)
    GUISetIcon("shell32.dll", 45)
    $uppercasecheck = GUICtrlCreateCheckbox("Uppercase: A,B,C,...", 248, 24, 153, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $lowercasecheck = GUICtrlCreateCheckbox("Lowercase: a,b,c,...", 248, 48, 153, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $numberscheck = GUICtrlCreateCheckbox("Numbers: 0,1,2,...", 248, 72, 153, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $minuscheck = GUICtrlCreateCheckbox("Minus: -", 408, 72, 153, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $underlinecheck = GUICtrlCreateCheckbox("Underline: _", 408, 48, 153, 25) ;vorher: 248, 96, 153, 25
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $bracketscheck = GUICtrlCreateCheckbox("Brackets: [,],<,>,...", 408, 24, 153, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $specialcheck = GUICtrlCreateCheckbox("Special: !,%,&,...", 248, 96, 153, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $generate = GUICtrlCreateButton("&Generate", 96, 350, 270, 26, 0)
    $about = GUICtrlCreateButton("&About", 16, 350, 65, 26, 0)
    $exit = GUICtrlCreateButton("&Exit", 528, 350, 65, 26, 0)
    $delete = GUICtrlCreateButton("&Delete", 455, 350, 65, 26, 0)
    $copy = GUICtrlCreateButton("&Copy", 380, 350, 65, 26, 0)
    $anzahlpws = GUICtrlCreateInput("", 152, 30, 63, 21)
    $Group1 = GUICtrlCreateGroup("Generated passwords:", 8, 128, 593, 215)
    $List2 = GUICtrlCreateList("", 16, 146, 577, 188)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $pwlaenge = GUICtrlCreateInput("", 152, 62, 65, 21)
    $Label1 = GUICtrlCreateLabel("Number of passwords:", 16, 32, 134, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Label2 = GUICtrlCreateLabel("Password-length:", 47, 64, 95, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Group2 = GUICtrlCreateGroup("Settings:", 8, 6, 593, 121)
    GUISetState(@SW_SHOW)
    $aboutwin = GUICreate("About - Check Version", 264, 124, 654, 372)
    GUISetIcon("shell32.dll", -278)
    $Button1 = GUICtrlCreateButton("&OK", 8, 88, 67, 25)
    $Label5 = GUICtrlCreateLabel("Version: 1.0.1", 81, 26, 69, 17, $WS_GROUP)
    $Label6 = GUICtrlCreateLabel("Copyright © Johannes Kneip, 2008", 81, 44, 169, 16, $WS_GROUP)
    $Label7 = GUICtrlCreateLabel("Passwort Generator", 81, 9, 97, 16, $WS_GROUP)
    $Label7 = GUICtrlCreateLabel("Email: autoit.report@web.de", 81, 62, 200, 30, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("&Check Version", 110, 88, 120, 25)
    $Icon1 = GUICtrlCreateIcon("shell32.dll", -45, 8, 8, 65, 65, BitOR($SS_NOTIFY, $WS_GROUP))
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    ;**********************************************************
    ;While-Scheife ("zur Abfrage der Benutzertätigkeiten")
    ;**********************************************************

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    If $msg[1] = $hGui Then
    GUIDelete($hGui)
    Exit
    Else
    If $msg[1] = $aboutwin Then
    GUISetState(@SW_HIDE, $aboutwin)
    EndIf
    EndIf
    Case $generate
    _Check()
    $numberpasswords = GUICtrlRead($anzahlpws)
    _PasswortCheck($alte)
    _GUICtrlListBox_SetSel($List2, 1)
    Case $pwlaenge
    $read = GUICtrlRead($pwlaenge)
    If $read < 1 Then GUICtrlSetData($pwlaenge, 5)
    Case $copy
    $checked1 = _GUICtrlListBox_GetCurSel($List2)
    $checked2 = _GUICtrlListBox_GetText($List2, $checked1)
    ClipPut($checked2)
    Case $about
    GUISetState(@SW_SHOW, $aboutwin)
    Case $Button1
    GUISetState(@SW_HIDE, $aboutwin)
    Case $exit
    Exit
    Case $Button2
    _UpdateCheck()
    Case $delete
    GUICtrlSetData($List2, "")
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ;***********************************************
    ;"Update-Funktion", prüft auf neueste Version
    ;***********************************************

    [/autoit] [autoit][/autoit] [autoit]

    Func _UpdateCheck()
    InetGet("http://autoit.spacequadrat.de/Downloads/update/update.txt", @TempDir & "\update.txt", 1, 0)
    $file = FileOpen(@TempDir & "\update.txt", 0)
    $line = FileReadLine($file, 1)
    $line3 = FileReadLine($file, 3)
    If $line = $ver Then
    MsgBox(64, "No Update found!", "You got the newest version: (" & $ver & ")")
    FileClose($file)
    FileDelete(@TempDir & "\update.txt")
    Else
    $newver = $line & "_" & $line3
    MsgBox(64, "Update!", "A newer version is available!")
    $fg = MsgBox(4, "Updaten?", "Do you want to download the new version?")
    If $fg = 6 Then
    InetGet("http://autoit.spacequadrat.de/Downloads/" & $newver & "/" & $newver & ".exe",$line3,1,1)
    FileClose($file)
    FileDelete(@TempDir & "\update.txt")
    EndIf
    EndIf
    EndFunc ;==>_UpdateCheck

    [/autoit] [autoit][/autoit] [autoit]

    ;**********************************************************************
    ;"Checkbox-Check-Funktion", prüft welche Checkboxen angeklickt sind
    ;**********************************************************************

    [/autoit] [autoit][/autoit] [autoit]

    Func _Check()
    Dim $codes = ""
    Dim $code = ""
    Dim $i = 0
    $b = GUICtrlRead($bracketscheck)
    If $b = 1 Then $auswahl[6] = True
    If $b = 4 Then $auswahl[6] = False
    $c = GUICtrlRead($lowercasecheck)
    If $c = 1 Then $auswahl[1] = True
    If $c = 4 Then $auswahl[1] = False
    $d = GUICtrlRead($underlinecheck)
    If $d = 1 Then $auswahl[3] = True
    If $d = 4 Then $auswahl[3] = False
    $e = GUICtrlRead($uppercasecheck)
    If $e = 1 Then $auswahl[2] = True
    If $e = 4 Then $auswahl[2] = False
    $f = GUICtrlRead($minuscheck)
    If $f = 1 Then $auswahl[5] = True
    If $f = 4 Then $auswahl[5] = False
    $g = GUICtrlRead($numberscheck)
    If $g = 1 Then $auswahl[0] = True
    If $g = 4 Then $auswahl[0] = False
    $h = GUICtrlRead($specialcheck)
    If $h = 1 Then $auswahl[4] = True
    If $h = 4 Then $auswahl[4] = False
    For $i = 0 To 6 Step 1
    If $auswahl[$i] = True Then
    $codes = $alte & $key[$i]
    Else
    EndIf
    $alte = $codes
    Next
    EndFunc ;==>_Check

    [/autoit] [autoit][/autoit] [autoit]

    ;***********************************************
    ;"Passwort-Funktion", erstellt das Passwort
    ;***********************************************

    [/autoit] [autoit][/autoit] [autoit]

    Func _PasswortCheck($alte)
    For $ou = 0 To $numberpasswords - 1 Step +1
    $password = ''
    For $o = 1 To Number(GUICtrlRead($pwlaenge))
    $password &= StringMid($alte, Random(1, StringLen($alte), 1), 1)
    Next
    GUICtrlSetData($List2, $password)
    GUICtrlSetState($List2, $GUI_FOCUS)
    Next
    EndFunc ;==>_PasswortCheck

    [/autoit]

    Version History:

    Spoiler anzeigen


    Version: 1.0.1

    Funktionen
    - Es können sofort mit einer Einstellung mehrere Passwörter erstellt werden
    - Markieren und "Copy"-Button, kopiert das Passwort in die Zwischenablage
    - Die Anzahl der Zeichen kann eingeben werden, so können passend wie jeweiligen Passwörter erstellt werden

    Bugs:

    Dies ist mein erstes Programm, ich hoffe es gefällt euch soweit ;)

    Alle Programme [Exe und Script] gibt es auch auf meiner Webseite: Johnny's Autoit Software

    Wenn ihr Anregungen/Ideen habt nur her damit!

    Habt ihr Bugs gefunden?
    -> Dann schreibt sie mir bitte.

    Mfg
    Johannes

    Edit GtaSpider: Mal von Projekte nach Skripte verschoben.

    5 Mal editiert, zuletzt von Johannes (6. November 2008 um 21:05)

  • Eigentlich ganz schön, nur brauchen sehr wenige Leute einen Generator.
    Da greift man lieber zu eigenen Standart-Passwörtern.

    Entwickle doch etwas, was das Passwort über ein Tastenkürzel eingibt,nicht zu aufdringlich ist,und was mit Windows startet, und was man nicht sieht.

    Eigentlich nicht schwer,aber du könntest das mit deinem Generator verbinden.....

    Auf den ersten Blick scheint es ganz schön zu sein,nur ist ein Passwort-Generator (für mich) nicht das Gelbe vom Ei.


    Aber immer weiter,auf der langen leiter (gabs da nicht ein Lied ?!)

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Vielen Dank für deine Anmerkung!

    Ich brauche öfters mal ein Passwort, generiere dann eins und speichere es dann in meinem Passwort-Manager ab. Da dachte ich mir, da brauchen vllt auch andere ;)
    Die Idee mit dem Passwort auf ein Tastenkürzellegen ist garnicht schlecht (ich setz mich mal dran).

  • Für mich ist nur wichtig,dass ich,abgesehen vom Hotkey-drücken,nichts machen muss !!!
    Wer imemr auf ne Verlinkung auf dem Desktop drückt, wird seinen Spaß rasch verlieren an mega-langen passwörtern.

    Noch eine Idee:
    Wenn das Programm mal streikt,wären alle Konten auf Eis gelegt.
    Also speicher doch eine verschlüsselte Version online oder auf der Festplatte ab !
    Also beim Passwort-generieren könnte man auch einfach seine E-Mail-Adresse eingeben,und das PW wird dir dann zugeschickt !

    Achja: ein schmuckes Design ist ein must-have ! (Design vom Generator,das Hotkey-script sollte auf KEINEN Fall eins haben !)

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • ich nutze öfters Kennwort generatoren, allerdings sollen die vom User auch zu merken sein deswegen wäre es schön , wenn man als Option auch "lesbare" Kennwörter generieren könnte.

    z.B. so:

    welugi14
    mohehu68
    lurife55
    wovisa84
    nomoha52
    puseke48
    hukoti53
    huvela84

    sind besser zu merken als:

    46f1pb01
    owzb7fek

    usw...

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • hab mir den script mal angeschaut, und habe gleich eine frage ;)

    und zwar wie stellt man es an, dass aus dem arry ($key[1]) zufällige zeichen verwendet werden?

    Tschuldigt bin ziemlicher Autoit anfänger ;)

    Den Bot an sich finde ich ziemlich gut und auch nützlich.

    MaddeX

  • @MaddeX 
    siehe Zeile 196.

    [autoit]

    Random ( [Min [, Max [, Flag]]] )

    [/autoit]

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---