Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Password Generator #2

Open
Ifhezu opened this issue Oct 13, 2023 · 0 comments · May be fixed by #5
Open

Password Generator #2

Ifhezu opened this issue Oct 13, 2023 · 0 comments · May be fixed by #5
Assignees
Labels
enhancement New feature or request

Comments

@Ifhezu
Copy link
Owner

Ifhezu commented Oct 13, 2023

  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.
@Ifhezu Ifhezu added the enhancement New feature or request label Oct 13, 2023
@Ifhezu Ifhezu self-assigned this Oct 13, 2023
@Ifhezu Ifhezu linked a pull request Oct 14, 2023 that will close this issue
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: In Progress
Development

Successfully merging a pull request may close this issue.

1 participant