Ü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?
InformationsquelleAutor hanyouchris | 2012-12-02
Schreibe einen Kommentar