4 - Password Strength Checker

Description

Create a React application that checks the strength of a password entered by the user. The application should display a visual indicator of the password's strength, with the following criteria:

  • Weak (less than 8 characters)

  • Medium (8-12 characters)

  • Strong (more than 12 characters)

Algorithm

  1. Initialize a state variable to store the password.

  2. Render an input field for the user to enter the password.

  3. Define a function to evaluate the password's strength based on its length.

  4. Render a visual indicator of the password's strength.

Classes

PasswordStrengthChecker: A React component that manages the password state and evaluates its strength.

Code

import React, { useState } from 'react';

function PasswordStrengthChecker() {
  const [password, setPassword] = useState('');
  const [strength, setStrength] = useState('');

  const evaluatePasswordStrength = () => {
    if (password.length < 8) {
      setStrength('Weak');
    } else if (password.length >= 8 && password.length <= 12) {
      setStrength('Medium');
    } else {
      setStrength('Strong');
    }
  };

  const handlePasswordChange = (event) => {
    setPassword(event.target.value);
    evaluatePasswordStrength();
  };

  return (
    <div>
      <input
        type="password"
        value={password}
        onChange={handlePasswordChange}
      />
      <p>Password Strength: {strength}</p>
      {strength === 'Weak' && (
        <p style={{ color: 'red' }}>Password is too short!</p>
      )}
      {strength === 'Medium' && (
        <p style={{ color: 'orange' }}>Password is okay!</p>
      )}
      {strength === 'Strong' && (
        <p style={{ color: 'green' }}>Password is strong!</p>
      )}
    </div>
  );
}

export default PasswordStrengthChecker;

Explanation

The code defines a PasswordStrengthChecker component that utilizes the useState hook to initialize state variables for the password and its strength. An input field is rendered for the user to enter the password. The evaluatePasswordStrength function assesses the password's strength based on its length and updates the strength state variable. A visual indicator of the password's strength is then rendered, with a corresponding message and color.

Possible Future Enhancements

  • Implement additional password strength criteria, such as checking for uppercase letters, numbers, and special characters.

  • Use a library like zxcvbn to evaluate the password's strength based on more complex criteria.

  • Display a progress bar or meter to visualize the password's strength.

  • Integrate with a registration or login form to require a strong password.

Last updated