Last active 1736852652

PasswordValidation.sh Raw
1#!/bin/bash
2
3#Validation Function:
4#- Checks if the password is not empty.
5#- Ensures the password length is between 5 and 16 characters.
6#- Ensures the password is not the same as the username.
7#- Checks if the password contains no spaces.
8#- Ensures the password contains at least one uppercase letter.
9#- Ensures the password contains at least one number.
10#- Ensures the password contains at least one special character.
11
12#Input and Validation:
13#- Prompts the user to enter a username and password.
14#- Calls the validation function to check the entered password.
15#- Displays appropriate messages based on the validation result.
16
17# Function to validate the password
18function validate_password() {
19 local password="$1"
20 local username="$2"
21
22 # Check if password is not empty
23 if [[ -z "$password" ]]; then
24 echo "Password cannot be empty."
25 return 1
26 fi
27
28 # Check if password length is between 5 and 16 characters
29 if [[ ${#password} -lt 5 ]] || [[ ${#password} -gt 16 ]]; then
30 echo "Password must be between 5 and 16 characters long."
31 return 1
32 fi
33
34 # Check if password is the same as the username
35 if [[ "$password" == "$username" ]]; then
36 echo "Password cannot be the same as the username."
37 return 1
38 fi
39
40 # Check if password contains spaces
41 if [[ "$password" =~ \ ]]; then
42 echo "Password cannot contain spaces."
43 return 1
44 fi
45
46 # Check if password contains at least one uppercase letter
47 if ! [[ "$password" =~ [A-Z] ]]; then
48 echo "Password must contain at least one uppercase letter."
49 return 1
50 fi
51
52 # Check if password contains at least one number
53 if ! [[ "$password" =~ [0-9] ]]; then
54 echo "Password must contain at least one number."
55 return 1
56 fi
57
58 # Check if password contains at least one special character
59 if ! [[ "$password" =~ [^a-zA-Z0-9] ]]; then
60 echo "Password must contain at least one special character."
61 return 1
62 fi
63
64 return 0
65}
66
67# Get username and password input from the user
68read -p "Enter username: " username
69read -s -p "Enter password: " password
70echo
71
72# Validate the password
73if validate_password "$password" "$username"; then
74 echo "Password is valid."
75else
76 echo "Password is invalid. Please try again."
77fi
78