Überprüfung eines Ergebnisses auf div. Bedingungen
Betrifft: Überprüfung eines Ergebnisses auf div. Bedingungen
von: Bernd Holzhauer
Geschrieben am: 29.07.2014 10:01:30
Hallo zusammen,
bin heute echt zu blöd für alles.
Ganz einfacher Fall ich generiere ein PW mit
Sub Test()
MsgBox Pwd(10)
End Sub
Function Pwd(iLength As Integer) As String
Dim i As Integer, iTemp As Integer, bOK As Boolean, cOK As Boolean, strTemp As String
'33 - 47 = Sonderzeichen, 48-57 = 0 To 9, 65-90 = A To Z, 97-122 = a To z
For i = 1 To iLength 'Passwortlänge
Do
iTemp = Int((122 - 33 + 1) * Rnd + 33)
Select Case iTemp
Case 33 To 47, 48 To 57, 65 To 90, 97 To 122: bOK = True
Case Else: bOK = False
End Select
Loop Until bOK = True
bOK = False
strTemp = strTemp & Chr(iTemp)
Next i
Pwd = strTemp
End Function
am Ende will ich prüfen ob alle 4 Kriterien wie Gross- und Kleinbuchstaben, Zahlen und Sonderzeichen im PW vorkommen nur wie ?????
hab schon div. CASE Varianten durch ;(
p.s. ist nicht im Excel sondern Outlook VBA
Gruß Bernd
Betrifft: AW: Überprüfung eines Ergebnisses auf div. Bedingungen
von: ChrisL
Geschrieben am: 29.07.2014 10:14:17
Hi Bernd
Warum das Rad neu erfinden ;)
http://www.access-paradies.de/news/tipp_juni_2003_1.php
cu
Chris
Betrifft: AW: Überprüfung eines Ergebnisses auf div. Bedingungen
von: Bernd Holzhauer
Geschrieben am: 29.07.2014 10:52:49
ein Träumchen ;)
geht gut und schnell auf Outlook angepasst
Betrifft: Traum oder Albtraum?
von: EtoPHG
Geschrieben am: 29.07.2014 10:58:56
Hallo Bernd,
Bei dem Vorschlag ist a) nicht sichergestellt, dass alle 4 Bedingungen erfüllt werden (wie von dir gefordert!) und b) ebenfalls eine fehlende Überprüfung auf eine Minimumlänge der Passworts.
Gruess Hansueli
Betrifft: Überprüfung eines Ergebnisses auf div. Bedingungen
von: Nepumuk
Geschrieben am: 29.07.2014 10:25:12
Hallo,
so vielleicht?
Private Function Pwd(iLength As Long) As String
Dim i As Long, iTemp As Long, bOK As Boolean, cOK As Boolean, strTemp As String
Dim lngCheck As Long
'33 - 47 = Sonderzeichen, 48-57 = 0 To 9, 65-90 = A To Z, 97-122 = a To z
Randomize
Do
strTemp = vbNullString
lngCheck = 0
For i = 1 To iLength 'Passwortlänge
Do
iTemp = Int((122 - 33 + 1) * Rnd + 33)
Select Case iTemp
Case 33 To 47
bOK = True
lngCheck = lngCheck Or 1
Case 48 To 57
bOK = True
lngCheck = lngCheck Or 2
Case 65 To 90
bOK = True
lngCheck = lngCheck Or 4
Case 97 To 122
bOK = True
lngCheck = lngCheck Or 8
Case Else
bOK = False
End Select
Loop Until bOK
strTemp = strTemp & Chr$(iTemp)
Next i
Loop Until lngCheck = 15
Pwd = strTemp
End Function
Gruß
Nepumuk
Betrifft: AW: Überprüfung eines Ergebnisses auf div. Bedingungen
von: Rudi Maintaire
Geschrieben am: 29.07.2014 10:29:01
Hallo,
Sub Test()
Dim myPwd
Do
myPwd = Pwd(10)
Loop Until CheckPwd(myPwd)
MsgBox myPwd
End Sub
Function Pwd(iLength As Integer) As String
Dim i As Integer, iTemp As Integer, bOK As Boolean, cOK As Boolean, strTemp As String
'33 - 47 = Sonderzeichen, 48-57 = 0 To 9, 65-90 = A To Z, 97-122 = a To z
For i = 1 To iLength 'Passwortlänge
Do
iTemp = Int((122 - 33 + 1) * Rnd + 33)
Select Case iTemp
Case 33 To 47, 48 To 57, 65 To 90, 97 To 122: bOK = True
Case Else: bOK = False
End Select
Loop Until bOK = True
bOK = False
strTemp = strTemp & Chr(iTemp)
Next i
Pwd = strTemp
End Function
Function CheckPwd(ByVal strPwd As String)
Dim bNum As Boolean, bGross As Boolean, bKlein As Boolean, bSonder As Boolean
Dim i As Integer
For i = 1 To Len(strPwd)
Select Case Asc(Mid(strPwd, i, 1))
Case 65 To 90: bGross = True
Case 97 To 122: bKlein = True
Case 48 To 57: bNum = True
Case Else: bSonder = True
End Select
Next
CheckPwd = bNum And bKlein And bGross And bSonder
End Function
Gruß
Rudi
Betrifft: Prüfung auf minimum 4 Läge...
von: EtoPHG
Geschrieben am: 29.07.2014 10:51:58
Hallo Bernd,
Ich würde Nepumuk's Vorschlag implentieren, denn der sorgt gleich bei der Generierung dafür, dass alle 4 Bedingungen erfüllt werden. Allerdings müsste noch ein Abbruch in die Function, damit sie bei einem Call mit einer Länge < 4 nicht in einen endlosen Loop läuft.
Gruess Hansueli
Beiträge aus den Excel-Beispielen zum Thema "Überprüfung eines Ergebnisses auf div. Bedingungen"