Überprüfen Der Passwort-Code
Problem Beschreibung:
Einige Websites auferlegen, bestimmte Regeln für Passwörter. Schreiben Sie eine Methode, die überprüft, ob ein string eine gültige Passwort ein. Angenommen, die Passwort-Regel ist wie folgt:
- Ein Passwort muss mindestens acht Zeichen haben.
- Ein Passwort besteht nur aus Buchstaben und Ziffern.
- Ein Passwort enthalten muss, mindestens zwei Ziffern.
Schreiben Sie ein Programm, das den Benutzer auffordert, ein Kennwort einzugeben, und die Meldung "ungültiges Kennwort", wenn die Regel befolgt oder "Passwort ungültig" sonst.
Dies ist, was ich habe, so weit:
import java.util.*;
import java.lang.String;
import java.lang.Character;
/**
* @author CD
* 12/2/2012
* This class will check your password to make sure it fits the minimum set requirements.
*/
public class CheckingPassword {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Please enter a Password: ");
String password = input.next();
if (isValid(password)) {
System.out.println("Valid Password");
} else {
System.out.println("Invalid Password");
}
}
public static boolean isValid(String password) {
//return true if and only if password:
//1. have at least eight characters.
//2. consists of only letters and digits.
//3. must contain at least two digits.
if (password.length() < 8) {
return false;
} else {
char c;
int count = 1;
for (int i = 0; i < password.length() - 1; i++) {
c = password.charAt(i);
if (!Character.isLetterOrDigit(c)) {
return false;
} else if (Character.isDigit(c)) {
count++;
if (count < 2) {
return false;
}
}
}
}
return true;
}
}
Wenn ich das Programm ausführen, es wird nur ermittelt, ob die Länge des Passwortes ist, kann ich nicht herausfinden, wie sicher ist es für die überprüfung sowohl Buchstaben als auch Ziffern und mindestens zwei Ziffern in das Passwort.
- Die erste Korrektur dazu ist, dass es sein sollte, wenn ein Passwort.length() <= 8, wie es heißt "mindestens 8", was bedeutet, dass 8 gültig ist.
- Also, wenn 8 gültig ist, soll die Methode false zurück, wenn die Länge < 8. Der OP bekam er Recht.
- Sie erlaubt die Verwendung von regex?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie hat es fast. Es gibt einige Fehler, obwohl:
i < password.length() - 1
falsch ist)Angenommen, ein gültiges Kennwort hat:
Code:
Als zuvor beantwortet haben, sollten Sie chek alle die Zeichen des Kennworts ersten. Zählen Sie Ihre zahlen und überprüfen Sie abschließend, wenn die Zahl kleiner als 2.
Hier ist der code bezieht.
Paket-Methode;
/*
2. Schreiben Sie eine Java-Methode, um zu überprüfen, ob ein string eine gültige
Passwort.
Passwort Regeln:
Ein Passwort muss aus mindestens zehn Zeichen.
Ein Passwort besteht nur aus Buchstaben und Ziffern.
Ein Kennwort muss mindestens zwei Ziffern.
Erwartete Ausgabe:
Wählen Sie ein Passwort (Sie Stimmen den oben genannten Bedingungen.): abcd1234
Kennwort gültig ist: abcd1234
*/
CheckPassword public class {
}