fb:porticula NoPaste
Passwortsicherheit bewerten
Uploader: | Mao |
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