'use client' import { useState } from 'react' export default function PasswordGenerator() { const [password, setPassword] = useState('') const [length, setLength] = useState(16) const [includeNumbers, setIncludeNumbers] = useState(true) const [includeSymbols, setIncludeSymbols] = useState(true) const [includeLetters, setIncludeLetters] = useState(true) const getStrengthDescription = (len: number) => { if (len < 8) return { text: 'Very Weak - Not recommended for security', color: 'text-red-500' } if (len < 12) return { text: 'Weak - Only for low-security needs', color: 'text-orange-500' } if (len < 16) return { text: 'Moderate - Good for most purposes', color: 'text-yellow-500' } if (len < 20) return { text: 'Strong - Recommended for sensitive data', color: 'text-green-500' } return { text: 'Very Strong - Excellent for critical security', color: 'text-emerald-500' } } const generatePassword = () => { const numbers = '0123456789' const symbols = '!@#$%^&*()_+-=[]{}|;:,.<>?' const letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' // Ensure at least one type is selected if (!includeLetters && !includeNumbers && !includeSymbols) { setIncludeLetters(true) return } let chars = '' if (includeLetters) chars += letters if (includeNumbers) chars += numbers if (includeSymbols) chars += symbols let newPassword = '' for (let i = 0; i < length; i++) { newPassword += chars[Math.floor(Math.random() * chars.length)] } setPassword(newPassword) } const strength = getStrengthDescription(length) return (

Password Generator

Generate secure passwords with customizable options. For maximum security, we recommend:

  • Use at least 16 characters for sensitive accounts
  • Include a mix of letters, numbers, and special characters
  • Use different passwords for each account
setLength(Number(e.target.value))} className="w-full mt-2" />

{strength.text}

{password && (
)}
) }