Zufällige kombination

  • Hallo Leute,

    ich will mit einem kleinem Programm eine Zufällige kombination erstellen.
    Und zwar sollen alle zeichen Benutz werden von a-z , 0-9 und alle sonderzeichen.
    Dies will ich so machen das man einstellen kann ob 4 Zeichen 8 Zeichen 16 Zeichen 32 Zeichen oder 64 Zeichen.

    Das ganze habe ich mir so vorstellt.:

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $KASTEN = GUICreate("KASTEN - B1A2", 264, 169, 192, 114)
    GUISetBkColor(0x585245)
    $anzeige = GUICtrlCreateInput("", 8, 8, 241, 22)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $erstellen = GUICtrlCreateButton("Erstellen", 48, 136, 75, 25, 0)
    $kopieren = GUICtrlCreateButton("Kopieren", 136, 136, 75, 25, 0)
    $Checkbox1 = GUICtrlCreateCheckbox("4 Stellen", 16, 48, 97, 17)
    $Checkbox2 = GUICtrlCreateCheckbox("8 Stellen", 152, 48, 97, 17)
    $Checkbox3 = GUICtrlCreateCheckbox("16 Stellen", 16, 80, 97, 17)
    $Checkbox4 = GUICtrlCreateCheckbox("32 Stellen", 152, 80, 97, 17)
    $Checkbox5 = GUICtrlCreateCheckbox("64 Stellen", 16, 112, 97, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von Zero2q (14. Juni 2009 um 14:27)

  • Hey, das ist mein Passwort Generator, der generiert aber keine Sonderzeichen, sorry.

    [autoit]

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

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

    Global $Key, $Stellen, $Random

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Passwort-Generator", 454, 139, 192, 124)
    $Button1 = GUICtrlCreateButton("Buchstabencode generieren", 8, 104, 139, 25, 0)
    $Button2 = GUICtrlCreateButton("Zahlencode generieren", 280, 104, 147, 25, 0)
    $Button3 = GUICtrlCreateButton("Gemischt generieren", 152, 104, 123, 25, 0)
    $Input1 = GUICtrlCreateInput("1", 8, 32, 121, 21)
    $Label1 = GUICtrlCreateLabel("Gebe hier ein wieviele Stellen das Passwort haben soll:", 8, 8, 263, 17)
    $Edit1 = GUICtrlCreateEdit("", 8, 56, 417, 41, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN))
    GUICtrlSetData(-1, "")
    $Button4 = GUICtrlCreateButton("Alles löschen", 368, 8, 75, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Stellen = GUICtrlRead($Input1)
    For $i = 1 To $Stellen
    $Buchstabe = Chr(Random(Asc("a"), Asc("z"), 1))
    $Key &= $Buchstabe
    Next
    GUICtrlSetData($Edit1, $Key)
    Case $Button2
    $Stellen = GUICtrlRead($Input1)
    For $i = 1 To $Stellen
    $Buchstabe = Random(1, 9, 1)
    $Key &= $Buchstabe
    Next
    GUICtrlSetData($Edit1, $Key)
    Case $Button3
    $Stellen = GUICtrlRead($Input1)
    For $i = 1 to $Stellen
    $Random = Random(1,4,1)
    Select
    Case $Random = 1
    $Key &= Chr(Random(Asc("a"), Asc("z"), 1))
    Case $Random = 2
    $Key &= Chr(Random(Asc("A"), Asc("Z"), 1))
    Case $Random = 3 or $Random = 4
    $Key &= Random(0,9,1)
    EndSelect
    Next
    GUICtrlSetData($Edit1, $Key)
    Case $Button4
    GUICtrlSetData($Edit1, "")
    $Key = ""

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

    EndSwitch
    WEnd

    [/autoit]
  • Hallo zero2q,

    die Funktion die du dir dazu anschauen solltest lautet ganz zufällig random, weitere Funktionen asc und chr, in meinen Demo zur Aufrufen der _EditBox im Forum Skripte habe ich alle 3 für etwas ähnliches verwendet,

    mfg (Auto)Bert

    • Offizieller Beitrag

    Hier für beliebige Länge, kannst in den String noch die Sonderzeichen einfügen:

    [autoit]

    ConsoleWrite('Länge 30: ' & @TAB & _GetRandomStr(30) & @CRLF)
    ConsoleWrite('Länge 90: ' & @TAB & _GetRandomStr(90) & @CRLF)

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

    Func _GetRandomStr($len)
    Local $aChar = StringSplit('01234AaÄäBbCcDdEeFfGgHhIiJjKkLlMmNnOoÖöPpQqRrSsßTtUuÜüVvWwXxYyZz56789','')
    Local $str = ''
    For $i = 1 To $len
    $str &= $aChar[Random(1,$aChar[0],1)]
    Next
    Return $str
    EndFunc

    [/autoit]
  • Ich habe vor einem Jahr auch mal einen Passwort-Generator gemacht. Anbei der Quellcode: