Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Generieren eines sicheren Paßwortes

Geschrieben von: Christian Koller
Kategorie: ASP Tricks

This printed page brought to you by AlphaSierraPapa

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.

This printed page brought to you by AlphaSierraPapa

Verwandte Artikel

ASP-basierte Basic Authentication
http:/www.aspheute.com/artikel/20010521.htm
Bannerzwang
http:/www.aspheute.com/artikel/20011001.htm
Benutzerverwaltung leicht gemacht: Teil 1
http:/www.aspheute.com/artikel/20020429.htm
Ein einfacher Eventkalender für Projektteams
http:/www.aspheute.com/artikel/20020319.htm
On Demand Zugriffsrechte für Web Sites vergeben
http:/www.aspheute.com/artikel/20011207.htm
Passwörter speichern - aber richtig!
http:/www.aspheute.com/artikel/20040105.htm
Sicherheitsaspekte bei der Gestaltung von ASP Sites ohne Cookies
http:/www.aspheute.com/artikel/20010601.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.