A simple Python application to generate secure and customizable passwords. Supports the following types:
- PIN: Numeric codes of any length.
- Random Password: Mix of letters, digits, and symbols.
- Memorable Password: Easy-to-remember passphrases made from English words.
- Object-Oriented design with an abstract base class
PasswordGenerator. - Multiple password generation strategies:
PinGeneratorRandomPasswordGeneratorMemorablePasswordGenerator
- Interactive CLI for user input.
- GUI version using Streamlit for a user-friendly experience.
- Customizable password length and character sets.
- Handles invalid inputs gracefully.
- Python 3.6+
nltklibrarystreamlitlibrary
Install the required library with:
python install -r requirements.txtRun the script for GUI version:
streamlit run src/app.pyRun the script for CLI version:
python src/password_generator.pyYou will be prompted to choose the type of password:
Generates a numeric PIN code.
Generates a random password using:
-
Letters only
-
Letters + Numbers
-
Letters + Numbers + Symbols
Generates a password using real English words separated by hyphens.
-
PasswordGenerator: Abstract base class.
-
PinGenerator: Generates numeric-only PINs.
-
RandomPasswordGenerator: Generates customizable random passwords.
-
MemorablePasswordGenerator: Uses real words for memorable passwords.
- Memorable passwords require the NLTK corpus words to be downloaded.
- GUI version requyire the Streamlit to be downloaded.
