Password Strength Estimation AI is an open-source project that utilizes machine learning techniques to estimate the strength of passwords. The AI model is trained on a large dataset of randomly generated passwords, labeled using the zxcvbn password estimation library. This project is implemented using TensorFlow.
The AI model is currently in beta state and may produce inaccurate predictions of password strength. Use the results with caution and always consider additional security measures.
- Estimates the strength of passwords using machine learning.
- Trained on a diverse dataset of randomly generated passwords.
- Includes cracked passwords from SecLists to enhance the training dataset.
- Created with TensorFlow for robust and efficient computation.
To train the AI model or load a pre-trained model, follow the instructions below:
- Python 3.x
- TensorFlow library
- Other required Python packages (
pip install -r requirements.txt
)
- Provide a
config.json
file in the root directory of the project. Alternatively, use the--config <path_to_config>
parameter to specify the configuration file's path. - In the
config.json
file, specify the following keys:cracked_passwords_url
: URL to an online.txt
file containing cracked passwords.csv_password_dataset
: Path to a local.csv
file containing passwords and their strength score from 0 to 4.
- Execute the training process using the following command:
python pass_strength_ai.py --train <model_version>
To estimate passwords using a trained model, follow these steps:
- Download a pretrained model here
- Execute the loading process using the following command:
python pass_strength_ai.py --execute <path_to_saved_model>
Contributions to this project are highly appreciated. You can contribute in the following ways:
- Report issues or suggestions for improvement.
- Submit pull requests to enhance the functionality or codebase.
- Share additional password datasets for further training and evaluation.
Please review the CONTRIBUTING.md file for more information on how to contribute to this project.
This project is licensed under the MIT License.