Pour le vérificateur de la force de mon mot de passe, je ne parviens pas à afficher le score que je reçois du mot de passe que j'ai entré. Voici le code ci-dessous, le problème est affiché tout le chemin en bas de mon code:Impossible d'afficher la force du mot de passe
import java.lang.Thread.State;
import java.util.Scanner;
public class PasswordUtils {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Password to test: ");
String pw = sc.nextLine();
if (containsUpperCase(pw)) {
System.out.println(" ...contains an upper case letter");
}
if (containsLowerCase(pw)) {
System.out.println(" ...contains an lower case letter");
}
if (containsDigit(pw)) {
System.out.println(" ...contains a number");
}
if (containsSpecial(pw)) {
System.out.println(" ...contains a number");
}
sc.close();
}
/** * Déterminer si la chaîne donnée contient une lettre majuscule * @param s la chaîne à check * @return true si et seulement si s contient une lettre majuscule */ public static boolean containsUpperCase (String s) { pour (int letter = 0; letter = 0) { return true; } } return false; }
public static boolean containsLowerCase(String s) {
for (int letter=0; letter<s.length(); letter++) {
if ("abcdefghijklmnopqrstuvwxyz".indexOf(s.charAt(letter))>=0) {
return true;
}
}
return false;
}
public static boolean containsDigit(String s) {
for (int letter=0; letter<s.length(); letter++) {
if ("1234567890".indexOf(s.charAt(letter))>=0) {
return true;
}
}
return false;
}
public static boolean containsSpecial(String s) {
for (int letter=0; letter<s.length(); letter++) {
if ("[email protected]#$%^&*()_-+=[]{};:,.<>?/|".indexOf(s.charAt(letter))>=0) {
return true;
}
}
return false;
}
/**
* Determine the actual strength of a password based upon various tests
* @param s the password to evaluate
* @return the strength (on a 1 to 5 scale, 5 is very good) of the password
*/
public static int score(String s) {
int pwscore = 0;
//if it contains one digit, add 1 to total score
if(s.matches("(?=.*[0-9]).*"))
pwscore += 1;
//if it contains one lower case letter, add 1 to total score
if(s.matches("(?=.*[a-z]).*"))
pwscore += 1;
//if it contains one upper case letter, add 1 to total score
if(s.matches("(?=.*[A-Z]).*"))
pwscore += 1;
//if it contains one special character, add 1 to total score
if(s.matches("(?=.*[[email protected]#$%^&*()_-]).*"))
pwscore += 1;
System.out.println("The password strength is " + pwscore);
return pwscore; // Right now, all passwords stink!!!
}
}
Merci, comment puis-je afficher la force de mot de passe ici? – V4k4
Merci encore l'homme. Comment écrire une méthode longEnough() qui teste simplement si une chaîne a 8 lettres ou plus et comment l'incorporer dans la méthode score()? – V4k4