Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Passwortsicherheit bewerten

Uploader:RedakteurMao
Datum/Zeit:17.10.2007 22:25:47

Declare Function ZeichenInString(ByVal s As String, ByVal iStart As Byte, _
                                 ByVal iEnde As Byte) As Integer

Declare Function PasswortSicherheit(ByVal sPasswort As String) As Integer

Dim As String s
Do
  Input "PW: ", s
  Print PasswortSicherheit(s)
Loop Until s="quit"


Function ZeichenInString(ByVal s As String, ByVal iStart As Byte, _
                         ByVal iEnde As Byte) As Integer
  Dim As Integer iZeichen

  For i As Integer=0 To Len(s)-1
    If (s[i]>=iStart) And (s[i]<=iEnde) Then
      iZeichen+=1
    End If
  Next i

  Function=iZeichen
End Function

Function PasswortSicherheit(ByVal sPasswort As String) As Integer
  Dim As Integer iGrBst, iKlBst, iSonder, iGrBstPr, iKlBstPr, iSonderPr, _
                 iLaengPw, iWertung

  iLaengPw=Len(sPasswort)
  If iLaengPw>0 Then
    iGrBst=ZeichenInString(sPasswort, Asc("A"), Asc("Z"))
    iKlBst=ZeichenInString(sPasswort, Asc("A"), Asc("Z"))
    iSonder=iLaengPw-iGrBst-iKlBst
    iGrBstPr=(iGrBst*100)/iLaengPw
    iKlBstPr=(iKlBst*100)/iLaengPw
    iSonderPr=(iSonder*100)/iLaengPw

    ' für jedes zusätzliche Zeichen nach dem 6. einen Punkt
    ' alternativ, d.h. wenn weniger als 6 Zeichen, Abzug
    iWertung=iLaengPw-6

    ' für jede "Zeichenart" einen Punkt
    If iGrBst>0 Then iWertung+=1
    If iKlBst>0 Then iWertung+=1
    If iSonder>0 Then iWertung+=1

    ' für Ausgewogenheit der Anteile der Zeichenarten jeweils einen Punkt
    If iGrBstPr>20 Then iWertung+=1
    If iKlBstPr>20 Then iWertung+=1
    If iSonderPr>10 Then iWertung+=1

    ' Werte trimmen: nur Werte zwischen 0 und 10 sind zulässig
    If iWertung<0 Then iWertung=0
    If iWertung>10 Then iWertung=10
  End If

  Function=iWertung
End Function