Strong passwords are at least 8 characters in length contain
Strong passwords are at least 8 characters in length, contain both upper- and lower-case letters, as well as some digits and special characters. Use the requirements (specified below) for a password to define in BNF a grammar for <strong password>
A valid password must contain the following elements:
- Standard U.S. keyboard characters only (such as the letters A through Z, the numbers 0 through 9, or the special characters on the top row of the keyboard)
- A minimum of 8 characters
- A maximum of 32 characters
- At least 1 number
- At least 1 of these special characters: ! $ & * < >
Solution
package com.chegg.strongpassword;
import java.util.Scanner;
public class StrongPasswordChecker {
public static boolean isSpecialCharacter(Character c)
{
return c.toString().matches(\"[^a-z A-Z0-9]\");
}
/*
* This method is used to valid password given by user whether method
* contains character,letter(lower and upper), numeric value and special character if contains return true or
* false
*
* @param password
*
* @return boolean
*/
public static boolean isValid(String password) {
int length = password.length();
boolean lower = false;
boolean upper = false;
boolean number = false;
boolean special = false;
// check condition if character length 6-10
if ((length >= 8) && (length <= 32)) {
{
for (int i = 0; i < length; i++) {
// check condition if password contains digit or not
if (Character.isDigit(password.charAt(i))) {
number = true;
}
// check condition if password contains lower case letter or not
if (Character.isLowerCase(password.charAt(i))) {
lower = true;
}
// check condition if password contains upper case letter or not
if (Character.isUpperCase(password.charAt(i))) {
upper = true;
}
// check condition if password contains special or not
if(StrongPasswordChecker.isSpecialCharacter(password.charAt(i))){
special = true;
}
}
}
} else {
System.out.println(\"condition failed!\");
}
return (number && lower && upper && special);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println(\"Please enter a given password : \");
String password = scan.nextLine();
System.out.println(isValid(password));
if (isValid(password)) {
System.out.println(\"Welcome password is correct\");
} else {
System.out.println(\"Invalid Passowrd. Password, \" + \"must contain atleast 1 lower case, \"
+ \"must contain atleast 1 upper case, \" + \"must contain atleast 1 special character, \"
+ \" 1 digit, 1\" + \" and \" + \"characters between 8-32 long\");
}
scan.close();
}
}

