Password checker program basically checks if a password is valid or not based on the password policies mention below:
- Password should not contain any space.
- Password should contain at least one digit(0-9).
- Password length should be between 8 to 15 characters.
- Password should contain at least one lowercase letter(a-z).
- Password should contain at least one uppercase letter(A-Z).
- Password should contain at least one special character ( @, #, %, &, !, $, etc…).
Example:
Input: GeeksForGeeks Output: Invalid Password! This input contains lowercase as well as uppercase letters but does not contain digits and special characters. Input: Geek$ForGeeks7 Output: Valid Password This input satisfies all password policies mentioned above.
Approach:
In this program,
- we are using String contains () method to check the passwords. This method accepts a CharSequence as an argument and returns true if the argument is present in a string otherwise returns false.
- Firstly the length of the password has to be checked then whether it contains uppercase, lowercase, digits and special characters.
- If all of them are present then the method isValid(String password) returns true.
Below is the implementation of the above approach:
C++
// C++ code to validate a password #include<bits/stdc++.h> using namespace std; // A utility function to check // whether a password is valid or not bool isValid(string password) { // For checking if password length // is between 8 and 15 if (!((password.length() >= 8) && (password.length() <= 15))) return false ; // To check space if (password.find( " " ) != std::string::npos) return false ; if ( true ) { int count = 0; // Check digits from 0 to 9 for ( int i = 0; i <= 9; i++) { // To convert int to string string str1 = to_string(i); if (password.find(str1) != std::string::npos) count = 1; } if (count == 0) return false ; } // For special characters if (!((password.find( "@" ) != std::string::npos) || (password.find( "#" ) != std::string::npos) || (password.find( "!" ) != std::string::npos) || (password.find( "~" ) != std::string::npos) || (password.find( "$" ) != std::string::npos) || (password.find( "%" ) != std::string::npos) || (password.find( "^" ) != std::string::npos) || (password.find( "&" ) != std::string::npos) || (password.find( "*" ) != std::string::npos) || (password.find( "(" ) != std::string::npos) || (password.find( ")" ) != std::string::npos) || (password.find( "-" ) != std::string::npos) || (password.find( "+" ) != std::string::npos) || (password.find( "/" ) != std::string::npos) || (password.find( ":" ) != std::string::npos) || (password.find( "." ) != std::string::npos) || (password.find( "," ) != std::string::npos) || (password.find( "<" ) != std::string::npos) || (password.find( ">" ) != std::string::npos) || (password.find( "?" ) != std::string::npos) || (password.find( "|" ) != std::string::npos))) return false ; if ( true ) { int count = 0; // Checking capital letters for ( int i = 65; i <= 90; i++) { // Type casting char c = ( char )i; string str1(1, c); if (password.find(str1) != std::string::npos) count = 1; } if (count == 0) return false ; } if ( true ) { int count = 0; // Checking small letters for ( int i = 97; i <= 122; i++) { // Type casting char c = ( char )i; string str1(1, c); if (password.find(str1) != std::string::npos) count = 1; } if (count == 0) return false ; } // If all conditions fails return true ; } // Driver code int main() { string password1 = "GeeksForGeeks" ; if (isValid(password1)) cout << "Valid Password" << endl; else cout << "Invalid Password" << endl; string password2 = "Geek$ForGeeks7" ; if (isValid(password2)) cout << "Valid Password" << endl; else cout << "Invalid Password" << endl; } // This code is contributed by Yash_R |
Java
// Java code to validate a password public class PasswordValidator { // A utility function to check // whether a password is valid or not public static boolean isValid(String password) { // for checking if password length // is between 8 and 15 if (!((password.length() >= 8 ) && (password.length() <= 15 ))) { return false ; } // to check space if (password.contains( " " )) { return false ; } if ( true ) { int count = 0 ; // check digits from 0 to 9 for ( int i = 0 ; i <= 9 ; i++) { // to convert int to string String str1 = Integer.toString(i); if (password.contains(str1)) { count = 1 ; } } if (count == 0 ) { return false ; } } // for special characters if (!(password.contains( "@" ) || password.contains( "#" ) || password.contains( "!" ) || password.contains( "~" ) || password.contains( "$" ) || password.contains( "%" ) || password.contains( "^" ) || password.contains( "&" ) || password.contains( "*" ) || password.contains( "(" ) || password.contains( ")" ) || password.contains( "-" ) || password.contains( "+" ) || password.contains( "/" ) || password.contains( ":" ) || password.contains( "." ) || password.contains( ", " ) || password.contains( "<" ) || password.contains( ">" ) || password.contains( "?" ) || password.contains( "|" ))) { return false ; } if ( true ) { int count = 0 ; // checking capital letters for ( int i = 65 ; i <= 90 ; i++) { // type casting char c = ( char )i; String str1 = Character.toString(c); if (password.contains(str1)) { count = 1 ; } } if (count == 0 ) { return false ; } } if ( true ) { int count = 0 ; // checking small letters for ( int i = 97 ; i <= 122 ; i++) { // type casting char c = ( char )i; String str1 = Character.toString(c); if (password.contains(str1)) { count = 1 ; } } if (count == 0 ) { return false ; } } // if all conditions fails return true ; } // Driver code public static void main(String[] args) { String password1 = "GeeksForGeeks" ; if (isValid(password1)) { System.out.println(password1 + " - Valid Password" ); } else { System.out.println(password1 + " - Invalid Password!" ); } String password2 = "Geek$ForGeeks7" ; if (isValid(password2)) { System.out.println(password2 + " - Valid Password" ); } else { System.out.println(password2 + " - Invalid Password!" ); } } } |
Python3
# Python3 code to validate a password # A utility function to check # whether a password is valid or not def isValid(password): # for checking if password length # is between 8 and 15 if ( len (password) < 8 or len (password) > 15 ): return False # to check space if ( " " in password): return False if ( True ): count = 0 # check digits from 0 to 9 arr = [ '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' ] for i in password: if i in arr: count = 1 break if count = = 0 : return False # for special characters if True : count = 0 arr = [ '@' , '#' , '!' , '~' , '$' , '%' , '^' , '&' , '*' , '(' , ',' , '-' , '+' , '/' , ':' , '.' , ',' , '<' , '>' , '?' , '|' ] for i in password: if i in arr: count = 1 break if count = = 0 : return False if True : count = 0 # checking capital letters for i in range ( 65 , 91 ): if chr (i) in password: count = 1 if (count = = 0 ): return False if ( True ): count = 0 # checking small letters for i in range ( 97 , 123 ): if chr (i) in password: count = 1 if (count = = 0 ): return False # if all conditions fails return True # Driver code password1 = "GeeksForGeeks" if (isValid([i for i in password1])): print ( "Valid Password" ) else : print ( "Invalid Password!!!" ) password2 = "Geek$ForGeeks7" if (isValid([i for i in password2])): print ( "Valid Password" ) else : print ( "Invalid Password!!!" ) # This code is contributed by mohit kumar 29 |
C#
// C# code to validate a password using System; class PasswordValidator { // A utility function to check // whether a password is valid or not public static bool isValid(String password) { // for checking if password length // is between 8 and 15 if (!((password.Length >= 8) && (password.Length <= 15))) { return false ; } // to check space if (password.Contains( " " )) { return false ; } if ( true ) { int count = 0; // check digits from 0 to 9 for ( int i = 0; i <= 9; i++) { // to convert int to string String str1 = i.ToString(); if (password.Contains(str1)) { count = 1; } } if (count == 0) { return false ; } } // for special characters if (!(password.Contains( "@" ) || password.Contains( "#" ) || password.Contains( "!" ) || password.Contains( "~" ) || password.Contains( "$" ) || password.Contains( "%" ) || password.Contains( "^" ) || password.Contains( "&" ) || password.Contains( "*" ) || password.Contains( "(" ) || password.Contains( ")" ) || password.Contains( "-" ) || password.Contains( "+" ) || password.Contains( "/" ) || password.Contains( ":" ) || password.Contains( "." ) || password.Contains( ", " ) || password.Contains( "<" ) || password.Contains( ">" ) || password.Contains( "?" ) || password.Contains( "|" ))) { return false ; } if ( true ) { int count = 0; // checking capital letters for ( int i = 65; i <= 90; i++) { // type casting char c = ( char )i; String str1 = c.ToString(); if (password.Contains(str1)) { count = 1; } } if (count == 0) { return false ; } } if ( true ) { int count = 0; // checking small letters for ( int i = 97; i <= 122; i++) { // type casting char c = ( char )i; String str1 = c.ToString(); if (password.Contains(str1)) { count = 1; } } if (count == 0) { return false ; } } // if all conditions fails return true ; } // Driver code public static void Main(String[] args) { String password1 = "GeeksForGeeks" ; if (isValid(password1)) { Console.WriteLine( "Valid Password" ); } else { Console.WriteLine( "Invalid Password!!!" ); } String password2 = "Geek$ForGeeks7" ; if (isValid(password2)) { Console.WriteLine( "Valid Password" ); } else { Console.WriteLine( "Invalid Password!!!" ); } } } // This code is contributed by Rajput-Ji |
Javascript
function isValidPassword(password) { // for checking if password length is between 8 and 15 if (!(password.length >= 8 && password.length <= 15)) { return false ; } // to check space if (password.indexOf( " " ) !== -1) { return false ; } // for digits from 0 to 9 let count = 0; for (let i = 0; i <= 9; i++) { if (password.indexOf(i) !== -1) { count = 1; } } if (count === 0) { return false ; } // for special characters if (!/[!@ #$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/.test(password)) { return false ; } // for capital letters count = 0; for (let i = 65; i <= 90; i++) { if (password.indexOf(String.fromCharCode(i)) !== -1) { count = 1; } } if (count === 0) { return false ; } // for small letters count = 0; for (let i = 97; i <= 122; i++) { if (password.indexOf(String.fromCharCode(i)) !== -1) { count = 1; } } if (count === 0) { return false ; } // if all conditions fail return true ; } // example usage const password1 = "GeeksForGeeks "; if (isValidPassword(password1)) { console.log(`${password1} - Valid Password`); } else { console.log(`${password1} - Invalid Password!`); } const password2 = " Geek$ForGeeks7"; if (isValidPassword(password2)) { console.log(`${password2} - Valid Password`); } else { console.log(`${password2} - Invalid Password!`); } |
GeeksForGeeks - Invalid Password! Geek$ForGeeks7 - Valid Password
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!