Erzeugen lesbarer Passwörter
Verfasst: 25.10.2015 21:28
Ich habe ein wenig hin und her überlegt, wie man einen Passwortgenerator bauen könnte, damit man einigermaßen lesbare Passwörter bekommt. Mein erster Ansatz arbeitet mit Wordpattern und gibt so den Aufbau des Strings grob vor. Ansich funktioniert es. Aber ich versuche gerade noch eine Unterteilung von Buchstabenkombinationen zu etablieren. Denn Momentan kommen noch ziemlich abstrakte Gebilde raus.
Hier einmal mein Ansatz:
Ebenfalls noch geplant ist die Möglichkeit, auch mit Leetspeak zu arbeiten.
Hat da vielleicht noch wer eine Anregung, bevor ich weitermache oder wäre ein komplett anderer Ansatz besser?
Hier einmal mein Ansatz:
Code: Alles auswählen
EnableExplicit
Procedure.s RandomReadableString()
Dim WordPattern.s(3)
Dim Consonants.s(20)
Dim Vocals.s(4)
Dim SpecialChars.s(7)
Dim Combinations.s(12)
WordPattern(0) = "cvccvcsdddd"
WordPattern(1) = "xvvcvcvddds"
WordPattern(2) = "xvxvvcvcsdds"
WordPattern(3) = "vcvvxvdcvcvsd"
Consonants(0) = "B"
Consonants(1) = "C"
Consonants(2) = "D"
Consonants(3) = "F"
Consonants(4) = "G"
Consonants(5) = "H"
Consonants(6) = "J"
Consonants(7) = "K"
Consonants(8) = "L"
Consonants(9) = "M"
Consonants(10) = "N"
Consonants(11) = "P"
Consonants(12) = "Q"
Consonants(13) = "R"
Consonants(14) = "S"
Consonants(15) = "T"
Consonants(16) = "V"
Consonants(17) = "W"
Consonants(18) = "X"
Consonants(19) = "Y"
Consonants(20) = "Z"
Vocals(0) = "A"
Vocals(1) = "E"
Vocals(2) = "I"
Vocals(3) = "O"
Vocals(4) = "U"
SpecialChars(0) = "#"
SpecialChars(1) = "."
SpecialChars(2) = ":"
SpecialChars(3) = "-"
SpecialChars(4) = "_"
SpecialChars(5) = "+"
SpecialChars(6) = "?"
SpecialChars(7) = "!"
Combinations(0) = "st"
Combinations(1) = "sp"
Combinations(2) = "pl"
Combinations(3) = "sch"
Combinations(4) = "ch"
Combinations(5) = "ll"
Combinations(6) = "ss"
Combinations(7) = "tt"
Combinations(8) = "nn"
Combinations(9) = "mm"
Combinations(10) = "ck"
Combinations(11) = "schl"
Combinations(12) = "kr"
Define PatternCount.i = ArraySize(WordPattern())
Define ConsonantsCount.i = ArraySize(Consonants())
Define VocalsCount.i = ArraySize(Vocals())
Define SpecialCharsCount.i = ArraySize(SpecialChars())
Define CombinationsCount.i = ArraySize(Combinations())
Define Patternstring.s = WordPattern(Random(PatternCount,0))
Define CurrentChar.s
Define x.i
Define GeneratedString.s = ""
For x = 0 To Len(Patternstring)
CurrentChar = Mid(Patternstring,x+1,1)
Select CurrentChar
Case "v"
GeneratedString = GeneratedString + LCase(Vocals(Random(VocalsCount,0)))
Case "c"
GeneratedString = GeneratedString + LCase(Consonants(Random(VocalsCount,0)))
Case "s"
GeneratedString = GeneratedString + LCase(SpecialChars(Random(SpecialCharsCount,0)))
Case "x"
GeneratedString = GeneratedString + LCase(Combinations(Random(CombinationsCount,0)))
Case "d"
GeneratedString = GeneratedString + Str(Random(9,0))
Default
Break
EndSelect
Next
ProcedureReturn GeneratedString
EndProcedure
OpenConsole()
PrintN(RandomReadableString())
Input()Hat da vielleicht noch wer eine Anregung, bevor ich weitermache oder wäre ein komplett anderer Ansatz besser?