Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Überprüfung eines Ergebnisses auf div. Bedingungen

Überprüfung eines Ergebnisses auf div. Bedingungen
29.07.2014 10:01:30
Bernd
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

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Überprüfung eines Ergebnisses auf div. Bedingungen
29.07.2014 10:52:49
Bernd
ein Träumchen ;)
geht gut und schnell auf Outlook angepasst

Traum oder Albtraum?
29.07.2014 10:58:56
EtoPHG
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

Überprüfung eines Ergebnisses auf div. Bedingungen
29.07.2014 10:25:12
Nepumuk
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

Anzeige
AW: Überprüfung eines Ergebnisses auf div. Bedingungen
29.07.2014 10:29:01
Rudi
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

Anzeige
Prüfung auf minimum 4 Läge...
29.07.2014 10:51:58
EtoPHG
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige