Open In App
Related Articles

Program to check the validity of password without using regex.

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

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!`);
}

                    

Output
GeeksForGeeks - Invalid Password!
Geek$ForGeeks7 - Valid Password


Last Updated : 31 Mar, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads