Generieren eines sicheren Paßwortes
Geschrieben von: Christian Koller Ein Paßwort benötigt man in einer ASP-Applikation immer dann, wenn sich ein Benutzer mittels Kombination aus Benutzername und Paßwort identifizieren soll. Beispiele für Websites, die eine Benutzeridentifizierung benötigen, sind Onlineshops, Administrationsseiten, Sites mit Zugriff auf vertrauliche Daten, Downloadbereich für Software die eine Registrierung erfordert, usw. Wie muß ein "sicheres" Paßwort beschaffen sein? Es darf nicht leicht zu erraten sein, wie der Vorname einer Person etwa. Es muß eine eindeutige Folge von Buchstaben und Ziffern sein, in der keine Verwechslungsgefahr wie zum Beispiel zwischen dem großem O und der Null (0), oder dem kleinen L (l) und der Eins (1) besteht. Um eine mehr oder weniger zufällige Folge von Buchstaben und Ziffern zu generieren, bietet sich unter VBScript (ASP) die Rnd Funktion an. Die Rnd Methode erzeugt ein zufällige Kommazahl zwischen 0 und 1. Es ist ein Leichtes, über mathematische Operatoren und Stringfunktionen wie Asc und Chr aus solch einer Zufallszahl ein zufällige Kombination aus Ziffern, Groß- und Kleinbuchstaben zu erstellen. Das folgende Skript zeigt die fertige Funktion namens GenerierePasswort, die ein sicheres Paßwort liefert. Das Argument der Funktion GenerierePasswort gibt die Länge des zu generierenden Paßwortes an: <% Response.Write GenerierePasswort(6) Function GenerierePasswort(Laenge) ' Laenge gibt die Laenge des Passwortes an Dim intI, objTools, strPassword strPassword = "" For intI = 1 to Laenge ' Eine Stelle des Passwortes generieren strPassword = strPassword & GenerateCharacter() Next GenerierePasswort = strPassword End Function Function GenerateCharacter() Dim intRnd, strRnd ' Erzeuge einen Kleinbuchstaben, oder eine Zahl ' Nicht erlaubt: 0,1,l,I Randomize Do intRnd = Int(Rnd * 60) If intRnd >=52 Then strRnd = CStr(intRnd - 51) ElseIf intRnd >= 26 Then strRnd = Chr(Asc("A") + intRnd - 26) Else strRnd = Chr(Asc("a") + intRnd) End If Loop Until (strRnd <> "0" And strRnd <> "l" _ And strRnd <> "I") GenerateCharacter = strRnd End Function %> Einige Beispiele von Paßwörtern, die das Skript erzeugt, sind: Dy7xnD, MHuRGw, R2qf4L. Die Funktion GenerierePasswort ruft die Funktion GenerateCharacter auf. Dies benutzt Randomize, um den Zufallsgenerator zu initialisieren. Dann erstellt sie mit Hilfe der Funktion Rnd eine Zufallszahl zwischen 0 und 59. Wenn die Zufallszahl größer oder gleich 52 ist, so wird von dieser Zahl der Wert 51 abgezogen, um so eine Zahl zwischen 2 und 9 zu erhalten. Wenn die Zufallszahl größer oder gleich 26 ist, so wird von ihr 26 abgezogen, das Ergebnis zum ASCII Code des großen A hinzugezählt, und der dem Resultat entsprechende große Buchstabe aus der ASCII-Tabelle generiert. Für eine Zufallszahl kleiner als 26 wird ein entsprechender kleiner Buchstabe ausgegeben. Durch den wiederholten Aufruf der Funktion GenerateCharacter wird in der Funktion GenerierePasswort schließlich aus den einzelnen zufälligen Zeichen ein Paßwort aufgebaut. Verwandte Artikel
ASP-basierte Basic Authentication Wenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |