Skip to content

Test the strength of your password. (Please check the readme file for more details)

License

Notifications You must be signed in to change notification settings

Layto888/Password-meter-py

Repository files navigation

Build Status License: MIT

Password-meter-py

Test the strength of your password or generate a strong one. Rate your password or generate a strong one.

  • Disclaimer:

This application is designed to assess the strength of password strings. And provides the user a means to improvethe strength of their passwords, with a hard focus on breaking the typical bad habits of faulty password formulation.

Since no official weighting system exists, we created our own formulas to assess the overall strength of a given password.

Please note, that this application does not utilize the typical "days-to-crack" approach for strength determination. We have found that particular system to be severely lacking and unreliable for real-world scenarios. This application is neither perfect nor foolproof, and should only be utilized as a loose guide in determining methods for improving the password creation process

Features:

  • A simple to use API for testing the strength of your password.
  • Generating strong passwords.

First install the dependencies with pip :

pip install -r requirements.txt

Usage example 1:

>>> from password_meter import Password
>>> password = Password('Azerty22')
>>> password.rate()

Usage example 2:

>>> from password_meter import Password
>>> from constants import *
>>> Password().find(8, spec=USE_PUNCTATIONS+USE_DIGITS)
# or this will return a new safe password and its score:
>>> my_password, my_score = Password().find(8, display=False)

TEST:

alt text

Code used for representation:

>>> from password_meter import Password
>>> from constants import *
>>> from matplotlib import pyplot as plt
>>> # find best password algorithm
>>> Password().find(12, spec=ALL, msg='spec=ALL')
>>> Password().find(12, spec=USE_LETTERS+USE_DIGITS, msg='spec=LETTERS + DIGITS')
>>> Password().find(12, spec=USE_LETTERS+USE_PUNCTATIONS, msg='spec=LETTERS + PUNCTATIONS')
>>> Password().find(12, spec=USE_DIGITS+USE_PUNCTATIONS, msg='spec=DIGITS + PUNCTATIONS')
>>>
>>> # graph to show passwords safety evolution with a certain number of tries.
>>> Password().drawGraph()

TODO:

  • add pytest file
  • let user choose if he wants include : digits / symbols ..etc.
  • add password strength infos text.
  • add improvement password suggestion in case of weak password.
  • add graph representation

About

Test the strength of your password. (Please check the readme file for more details)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages