Ifhezu / TaskManX

TaskManX: Boost your productivity with an all-in-one task manager, file organizer, and password generator. Prioritize, track deadlines, and set reminders with ease. Stay organized, manage tasks, and generate secure passwords effortlessly. Supercharge your efficiency now!
https://github.com/Ifhezu/TaskManX
Apache License 2.0
3 stars 0 forks source link

Password Generator #2

Open Ifhezu opened 8 months ago

Ifhezu commented 8 months ago
  1. User Input and Preferences:

    • Prompt the user to input their desired password length. Handle cases where the input is not a valid integer or falls outside the acceptable range.
    • Ask the user to specify the types of characters they want in their password (uppercase letters, lowercase letters, numbers, symbols). You can present these options as checkboxes or allow the user to enter a specific combination of characters.
  2. Generating a Random Password:

    • Create separate lists for each character type based on the user's preferences (uppercase, lowercase, numbers, symbols).
    • Use a random number generator (provided by the programming language or a library) to select random characters from the appropriate lists.
    • Repeat the previous step until the desired password length is reached.
    • Concatenate the selected characters to form the final generated password.
  3. Password Strength:

    • Ensure that the generated password meets security standards by considering the following guidelines:
      • Define a minimum password length to prevent weak passwords (e.g., at least 8 characters).
      • Include a mix of character types (uppercase, lowercase, numbers, symbols) to enhance complexity and make the password harder to guess.
      • Avoid easily guessable patterns or common passwords by randomizing the character selection process.
  4. Display or Copy Password:

    • Provide the user with options to either display the generated password on the screen or automatically copy it to the clipboard.
    • If displaying the password, consider masking the characters (e.g., using asterisks) or providing a toggle option to reveal the password temporarily.
  5. Error Handling:

    • Implement error handling to validate user input and handle any exceptions that may occur during the password generation process. For example, check if the password length provided by the user is a valid integer and within the acceptable range.
  6. Additional Features:

    • Consider adding additional features to enhance the user experience and password security:
      • Allow users to regenerate a new password with different options without going through the entire process again.
      • Provide a strength indicator that rates the password's strength (weak, medium, strong) based on its length and complexity.
      • Implement an option to enforce the exclusion of ambiguous characters that can cause confusion (e.g., 'l' and '1', 'O' and '0').
  7. Security Considerations: (for cs50CY students)

    • If you plan to store passwords for authentication purposes, follow best practices to protect user passwords:
      • Hash and salt passwords using secure algorithms (e.g., bcrypt, Argon2) before storing them.
      • Avoid storing passwords in plaintext or reversible encryption formats.
  8. Testing and Validation: (for alumns of at least one cs50 course)

    • Thoroughly test the password generator functionality with various inputs and scenarios to ensure its reliability, randomness, and adherence to security standards.
    • Validate that the generated passwords meet the desired complexity and length requirements.