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

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Generieren eines sicheren Paßwortes

Geschrieben von: Christian Koller
Kategorie: ASP Tricks

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
Bannerzwang
Benutzerverwaltung leicht gemacht: Teil 1
Ein einfacher Eventkalender für Projektteams
On Demand Zugriffsrechte für Web Sites vergeben
Passwörter speichern - aber richtig!
Sicherheitsaspekte bei der Gestaltung von ASP Sites ohne Cookies

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.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©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.