Passwort generieren

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Passwort generieren

Beitrag von X360 Andy »

Hier eine kleine Procedure zum erstellen eines Passworts.

Es können Klein-Groß Buchstaben , Zahlen und Sonderzeichen verwendet werden.

Sowas hab ich vor ein paar Wochen mal gesucht, auch gefunden aber die Procedure war mir zu voll....

Aber vieleicht kann ja jemand das hier mal gebrauchen :)

Code: Alles auswählen

Procedure.s PasswortGenerator(leange, gross_klein, sonderzeichen, zahlen)
  Repeat
    Passwortzeichenformat = Random(2)
    If Passwortzeichenformat = 0
      ;Wenn groß und kleinschreibung = 1  ...
      If gross_klein = 1
        klein_oder_gross = Random(1)
        If klein_oder_gross = 1
          zufallsbuchstaben = Random(25) : Passwort$ + Chr(97 + zufallsbuchstaben)
        Else
          zufallsbuchstaben = Random(25) : Passwort$ + Chr(65 + zufallsbuchstaben)
        EndIf
      EndIf
    EndIf
    
    If Passwortzeichenformat = 1
      ;Wenn Zahlen = 1 ist  ....
      If zahlen = 1
        zufallszahl = Random(9) : Passwort$ + Chr(48 + zufallszahl)
      EndIf
    EndIf
    
    If Passwortzeichenformat = 2
      ;Wenn Sonderzeichen = 1 ist ...
      If sonderzeichen = 1
        zufallszeichen = Random(14) : Passwort$ + Chr(33 + zufallszeichen)
      EndIf
    EndIf
    
  Until Len(Passwort$) = leange
  ProcedureReturn Passwort$
EndProcedure
Und hier ein Anwendungsbeispiel

Code: Alles auswählen

OpenWindow(0, 669, 330, 333, 104, "Passwort generieren", #PB_Window_SystemMenu | #PB_Window_TitleBar)
StringGadget(1, 10, 80, 310, 20, "", #PB_String_ReadOnly)
CheckBoxGadget(2, 150, 10, 60, 20, "Zahlen")
CheckBoxGadget(3, 230, 10, 90, 20, "Sonderzeichen")
CheckBoxGadget(4, 10, 10, 130, 20, "Groß-Klein Buchstaben")
SpinGadget(5, 130, 40, 30, 20, 0, 100, #PB_Spin_Numeric)
SetGadgetState(5,10)
TextGadget(6, 10, 40, 110, 20, "Länge des Passworts")
ButtonGadget(7, 180, 40, 140, 20, "Passwort generieren")

Repeat
  
  Select WaitWindowEvent()
      
    Case #PB_Event_Gadget
      
      Select EventGadget()
          
        Case 7
          
          leange = GetGadgetState(5)
          
          gross_klein = GetGadgetState(4)
          
          sonderzeichen = GetGadgetState(3)
          
          zahlen = GetGadgetState(2)
          
          If gross_klein = 0 And sonderzeichen = 0 And zahlen = 0
            
            SetGadgetText(1, "Fehler;Passwort Format wählen")
         Else
           Passwort$ = PasswortGenerator(leange, gross_klein, sonderzeichen, zahlen)
           SetGadgetText(1, Passwort$)
          EndIf
            
         
       
      EndSelect
      
    Case #PB_Event_CloseWindow
      
      Break
      
  EndSelect
  
ForEver
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

danke für den Code :allright:
Win11 x64 | PB 6.20
Antworten