Rubrik: Variablen/Strings · Algorithmen/Mathematik | VB-Versionen: VB2005, VB2008 | 08.02.10 |
Key-Generator Eine kleine Hilfsfunktion, die ein zufälliges Kennwort aus Buchstaben und Zahlen ermittelt. | ||
Autor: Dieter Otter | Bewertung: | Views: 11.657 |
www.tools4vb.de | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Immer dann wenn man sich ein Kennwort ausdenken muss, fängt man ganz autom. das Überlegen an: "Was nehme ich denn diesmal für ein Kennwort?"
Warum nicht also eine kleine Funktion erstellen, die ein zufälliges Kennwort aus Buchstaben und Zahlen ermitteln, wobei die Länge des gewünschten Kennwortes als Parameter angegeben werden kann. Daraus ergibt sich dann manchmal aber folgende Frage: 0 (Null) oder O (Buchstabe O), 1 (Eins) oder I (Buchstabe I).
Also entschließen wir uns weder die Zahl Null, noch den Buchstaben I zu verwenden
''' <summary> ''' Erzeugt einen zufälligen Schlüsselwert aus Buchstaben und Zahlen ''' </summary> ''' <param name="KeyLen">Länge des erzeugten Schlüssels</param> Public Function CreateKey(ByVal KeyLen As Integer) As String Dim Value As Integer Dim sKey As String = "" Dim oZahl As New System.Random Randomize() For i As Integer = 1 To KeyLen ' Zufallszahl im Bereich 1 bis 1000 Value = oZahl.Next(1, 1000) If (Value Mod 10 = 0) OrElse (Value Mod 5 = 0) OrElse (Value Mod 3 = 0) Then ' Zahl erzeugen Value = oZahl.Next(2, 9) sKey = sKey & Chr(48 + Value) Else ' Buchstabe Do Value = oZahl.Next(1, 26) Loop Until Value <> 9 And Value <> 15 sKey = sKey & Chr(64 + Value) End If Next i ' erzeugten Schlüssel zurückgeben Return sKey End Function
Zunächst wird per Zufallsgenerator eine Zahl zwischen 1 und 1000 ermittelt. Lässt sich die ermittele Zufallszahl durch 10, 5 oder 3 OHNE REST teilen, ermitteln wir eine Zahl für unseren Key - andernfalls einen Buchstaben. Bei längeren Keys sollte dann die Anzahl der Buchstaben im Key überwiegen.
Fazit:
Wann immer Sie ein Kennwort ohne erst lange zu überlegen benötigen, verwenden Sie ab sofort Ihren neuen Key-Generator