Validieren das Passwort in Java
Waleed
12 Oktober 2023
Beim Erstellen einer Anmeldeseite müssen wir oft das Passwort validieren und prüfen, ob es dem richtigen Standard entspricht oder nicht.
Die Validierung des Passworts umfasste die Überprüfung des Passworts, ob es gemäß der unten beschriebenen Passwortrichtlinie korrekt ist oder nicht:
- Ein Standardpasswort besteht aus mindestens acht Zeichen
- Ein normales Passwort enthält mindestens zwei Großbuchstaben
- Ein Standardpasswort enthält zwei Kleinbuchstaben
- Ein Standardpasswort enthält zwei Sonderzeichen
Algorithmus zum Validieren von Passwörtern in Java
- Vor der Überprüfung unseres Passworts müssen wir angeben, wie viele Großbuchstaben, Kleinbuchstaben, Sonderbuchstaben oder Ziffern ein ideales Passwort enthalten sollte. Dazu definieren wir die Variablen MAX, MIN_Uppercase, MIN_Lowercase, Num_Digits und Special vom Typ int.
- Um zu zählen, wie viele Großbuchstaben, Kleinbuchstaben, Ziffern oder Sonderzeichen unser Passwort enthält, deklarieren wir die Variablen
uppercaseCounter
,lowercaseCounter
,special
unddigitCounter
vom TypInteger
. - Nachdem wir die Zählervariablen deklariert haben, initialisieren wir sie mit 0. Indem wir die Zählervariablen mit 0 initialisieren, stellen wir sicher, dass sie keinen Müllwert enthalten.
- Wir werden den Benutzer zuerst bitten, ein Passwort einzugeben, um das angegebene Passwort zu validieren. Um Benutzereingaben entgegenzunehmen, importieren wir zuerst die Scannerklasse in unser Programm und erstellen dann ein Objekt. In unserem Programmobjekt des Scanners wird Klasse eingegeben.
- Die Scannerfunktion hat eine Standardfunktion von
.nextLine()
, die Benutzereingaben liest und diese dann in einer Zeichenfolge speichert. - Wir iterieren dann alle Passwortzeichen und speichern jedes Zeichen in einer
c
-Variablen vom Typ char. - Der Zeichendatentyp hat eine Standardfunktion
isUpperCase
,isLowerCase
undisDigit
. Anhand dieser Standardfunktionen berechnen wir, wie viele Groß- und Kleinbuchstaben, Sonderzeichen oder Zahlen unser Passwort enthält. - Wenn ein in der Variable c gespeichertes Zeichen ein Großbuchstabe ist, inkrementieren wir die Variable uppercaseCount um 1.
- Wenn ein in einer c-Variable gespeichertes Zeichen ein Kleinbuchstabe ist, erhöhen wir die Variable lowercaseCounter um 1.
- Wenn ein in c gespeichertes Zeichen eine Zahl ist, inkrementieren wir die Variable
digitCounter
um 1. - Wenn ein in c gespeichertes Zeichen ein Sonderzeichen ist, erhöhen wir einen Sonderzähler um 1.
- Danach führen wir die bedingte Anweisung aus, um zu prüfen, ob unser Passwort die angegebenen Zeichen wie
@#%
, Klein- und Großbuchstaben und Ziffern enthält oder nicht. - Wenn das Passwort unsere angegebenen Kriterien erfüllt, drucken wir die Erklärung
Validate password
. - Falls das Passwort nicht alle oder einige unserer Bedingungen erfüllt, zeigen wir zuerst die Aussage
Your password doesn't contain the following
an. - Zuletzt prüfen wir, welche Bedingung(en) das Passwort nicht erfüllt, und zeigen dann die entsprechende Meldung an.
package sampleProject;
import java.util.*;
import java.util.Scanner;
public class Codesample {
public static void main(String[] args) {
// Specify the maximum number of letters in a password
final int MAX = 8;
// Specifying the number of uppercase letters in password
final int MIN_Uppercase = 2;
// Specifying the minimum lowercase letters in password
final int MIN_Lowercase = 2;
// Specifying the number of digits in a password
final int NUM_Digits = 2;
// Specify the minimum number of special case letters
final int Special = 2;
// Count number of uppercase letters in a password
int uppercaseCounter = 0;
// Counter lowercase letters in a password
int lowercaseCounter = 0;
// Count digits in a password
int digitCounter = 0;
// count special case letters in a password
int specialCounter = 0;
// Take input of password from the user
System.out.println("Enter the password\n");
Scanner input = new Scanner(System.in);
// Take password input from the user and save it in the string password
String password = input.nextLine();
for (int i = 0; i < password.length(); i++) {
char c = password.charAt(i);
if (Character.isUpperCase(c))
uppercaseCounter++;
else if (Character.isLowerCase(c))
lowercaseCounter++;
else if (Character.isDigit(c))
digitCounter++;
if (c >= 33 && c <= 46 || c == 64) {
specialCounter++;
}
}
if (password.length() >= MAX && uppercaseCounter >= MIN_Uppercase
&& lowercaseCounter >= MIN_Lowercase && digitCounter >= NUM_Digits
&& specialCounter >= Special) {
System.out.println("Valid Password");
} else {
System.out.println("Your password does not contain the following:");
if (password.length() < MAX)
System.out.println(" atleast 8 characters");
if (lowercaseCounter < MIN_Lowercase)
System.out.println("Minimum lowercase letters");
if (uppercaseCounter < MIN_Uppercase)
System.out.println("Minimum uppercase letters");
if (digitCounter < NUM_Digits)
System.out.println("Minimum number of numeric digits");
if (specialCounter < Special)
System.out.println("Password should contain at lest 3 special characters");
}
}
}
Ausgabe:
Your password does not contain the following:
At least 8 characters
Minimum lowercase letters
Minimum, uppercase letters
Minimum number of numeric digits
Password should contain at least 3 special characters
Enter the password
DElft@#90
Valid Password