Seite 1 von 1

[Code] Kompakter Passwort Generator

Verfasst: 27.02.2019 18:46
von Mijikai
Viel Spaß <)

27.02.2019 Edit: Komplexer Generator hinzugefügt!

--------------------------------------------------

Komplexer Generator (hohe Sicherheit):

Das generierte Passwort hat immer mindestens einen kleinen und großen Buchstabe
sowie ein Sonderzeichen und eine Zahl.

Nutzt die sichere Funktion CryptRandom()!

Code: Alles auswählen

EnableExplicit

;Compact RandomPassword.b (komplex) by Mijikai
;Password length 4 - 128
;PB v.5.62

Procedure.s RandomPassword(Length.i)
  Protected Dim block.a(127)
  Protected index.i
  Protected password.s
  Protected *key.Ascii
  If Length > 3 And Length < 129
    If OpenCryptRandom()
      block(0) = CryptRandom(9)
      block(1) = CryptRandom(25) + 10
      block(2) = CryptRandom(25) + 36
      block(3) = CryptRandom(29) + 52
      For index = 4 To Length - 1
        block(index) = CryptRandom(91)
      Next
      RandomizeArray(block(),0,Length - 1)
      For index = 0 To Length - 1
        *key = ?randompassword + block(index) 
        password + Chr(*key\a)
      Next
      CloseCryptRandom()
      ProcedureReturn password 
    Else
      ProcedureReturn #Null$;<- DONT USE WITH PB v.5.70!
    EndIf 
  Else
    ProcedureReturn #Null$;<- DONT USE WITH PB v.5.70!
  EndIf
  randompassword:
  !db '0123456789'
  !db 'abcdefghijklmnopqrstuvwxyz'
  !db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  !db 0x21,0x22,0x23,0x24,0x25,0x26
  !db 0x27,0x28,0x29,0x2A,0x2B,0x2C
  !db 0x2D,0x2E,0x2F,0x3A,0x3B,0x3C
  !db 0x3D,0x3E,0x3F,0x40,0x5B,0x5D
  !db 0x5E,0x5F,0x7B,0x7C,0x7D,0x7E
EndProcedure

Debug RandomPassword(64)

End
__________________________________________________

Einfacher Generator (mittlere Sicherheit):

Das generierte Passwort hat immer mindestens einen kleinen und großen
Buchstabe sowie ein Sonderzeichen.

Es werden Längen von 4 - 128 unterstützt.

Code:

Code: Alles auswählen

EnableExplicit

;Compact RandomPassword.a (einfach) by Mijikai
;Password length 4 - 128
;PB v.5.62

Procedure.s RandomPassword(Length.i)
  Protected Dim block.a(127)
  Protected index.i
  Protected password.s
  Protected *key.Ascii
  If Length > 3 And Length < 129
    block(0) = Random(25,0)
    block(1) = Random(51,26)
    block(2) = Random(81,52)
    For index = 3 To Length - 1
      block(index) = Random(81,0)
    Next
    RandomizeArray(block(),0,Length - 1)
    For index = 0 To Length - 1
      *key = ?randompassword + block(index) 
      password + Chr(*key\a)
    Next
    ProcedureReturn password
  Else
    ProcedureReturn #Null$;<- DONT USE WITH PB v.5.70!
  EndIf
  randompassword:
  !db 'abcdefghijklmnopqrstuvwxyz'
  !db 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  !db 0x21,0x22,0x23,0x24,0x25,0x26
  !db 0x27,0x28,0x29,0x2A,0x2B,0x2C
  !db 0x2D,0x2E,0x2F,0x3A,0x3B,0x3C
  !db 0x3D,0x3E,0x3F,0x40,0x5B,0x5D
  !db 0x5E,0x5F,0x7B,0x7C,0x7D,0x7E
EndProcedure

Debug RandomPassword(64)

End

Re: [Code] Kompakter Passwort Generator

Verfasst: 27.02.2019 22:29
von sibru
Danke !!! :allright:

gut abgepasst, brauche ich gerade... :)

Re: [Code] Kompakter Passwort Generator

Verfasst: 27.02.2019 23:04
von NicTheQuick
Um kryptografisch sichere Passwörter zu erzeugen, bau am besten CryptRandomData() ein. Nur damit stellst du sicher, dass sich keine Passwörter wiederholen können bzw. dass sie jemand mit dem richtigen Startwert (siehe RandomSeed()) erneut erzeugen kann.

Re: [Code] Kompakter Passwort Generator

Verfasst: 27.02.2019 23:22
von Mijikai
NicTheQuick hat geschrieben:Um kryptografisch sichere Passwörter zu erzeugen, bau am besten CryptRandomData() ein. Nur damit stellst du sicher, dass sich keine Passwörter wiederholen können bzw. dass sie jemand mit dem richtigen Startwert (siehe RandomSeed()) erneut erzeugen kann.
Danke für den Hinweis, hab eine weitere Version geschrieben und meinen Post geupdated :)
Jetzt gibt es 2 Varianten - hohe und mittlere Sicherheit.