Java Programming Implement a program that reads in a user pa
Java Programming
Implement a program that reads in a user password and verifies it meets the following criteria:
- At least 8 characters long
- Contains at lease 1 lower letter character
- Contains at least 1 upper letter character
- Contains at least 1 numeric digit
- Contains at least 1 special character from the set !@#$%^&*
- Does not contain the word \"and\" or the word \"the\"
- Promts the user for a password, including the requirements above in your output.
- Output a string that states valid or invalid. If invalid, state which rules from the list above have been met, and prompt the user to enter another password.
Utilize the following functionality:
- indexOf
- Looping structure
- charAT()
- isDigit()
- isUpperCase()
- isLowerCase()
Sample Output:
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Password1
 
 Invalid
 Missing a special character
 
 -----------------------------------------------------------------
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Panda123$
 
 Invalid
 Contains the string “and”
 
 -----------------------------------------------------------------
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Hi
 
 Invalid
 Must be at least 8 characters long
 Must contain a numeric digit
 Must contain a special character
 
 -----------------------------------------------------------------
 
 Password Verifier
 
 Enter a password that meets the following rules:
 <list rules from above>
 Pa$$word1
 
 Valid
Solution
PasswordChecker.java
import java.util.*;
 class PasswordChecker
 {
 public static boolean isValid(String password)
 {
 String symbol = \"!@#$%^&*\";
 int upperCaseCount = 0;
 int lowerCaseCount = 0;
 int digitCount = 0;
 boolean hasSymbol = false;
 if(password.length() >= 8) {//Checks for length.
 int i = 0;
 while( i < password.length()) //For each character.
 {
 char c = password.charAt(i);
 if(Character.isUpperCase(c) ) //If uppercase, increment counter.
 upperCaseCount++;
 if(Character.isLowerCase(c)) //If lowercase, increment counter.
 lowerCaseCount++;
 if(Character.isDigit(c)) //If digit, increment counter.
 digitCount++;
 if(symbol.indexOf(c) != -1 && hasSymbol == false) //If has symbol, mark flag.
 hasSymbol = true;
 i++;
 }
 } else {
 System.out.println(\"Invalid password. Password length should be no less than 8.\");
 return false;
 }
 if(upperCaseCount < 1) {
 System.out.println(\"Invalid password. Password should contain minimum 1 uppercase letter.\");
 return false;
 }
 if(lowerCaseCount < 1) {
 System.out.println(\"Invalid password. Password should contain minimum 1 lowercase letter.\");
 return false;
 }
 if(digitCount < 1) {
 System.out.println(\"Invalid password. Password should contain minimum 1 digits.\");
 return false;
 }
 if(!hasSymbol) {
 System.out.println(\"Invalid password. Password should contain atleast one special characters from ! @ # $ % ^ & * \");
 return false;
 }
 return true;
 }
 public static void main(String args[]){
    Scanner scan = new Scanner(System.in);
    System.out.print(\"Ennter the password: \");
    String pass = scan.next();
    while(!isValid(pass)){
        System.out.print(\"Ennter the password: \");
    pass = scan.next();
           
    }
    System.out.println(\"Given password is valid\");
 }
 }
Output:
Ennter the password: pass
 Invalid password. Password length should be no less than 8.
 Ennter the password: password
 Invalid password. Password should contain minimum 1 uppercase letter.
 Ennter the password: Password
 Invalid password. Password should contain minimum 1 digits.
 Ennter the password: Password12
 Invalid password. Password should contain atleast one special characters from ! @ # $ % ^ & *
 Ennter the password: Password12!@
 Given password is valid



