Awesome Open Source
Awesome Open Source


Command line tool that checks how much a password is safe
Coded with 💙 by edoardottt.

Mainteinance yes version pr-welcome ask me anything
go-report-card workflows ubuntu-build
gobadge license-GPL3

ExampleGet StartedDescriptionScoringContributing

This tool doesn't store any information!!
Remember, never use personal(or related to you) info in your password!

  • Use a password manager (I recommend BitWarden)
  • Don't use the same password for different services
  • Enable 2FA when possible

Example 📊

asciicast

Get Started 🎉

  • First of all, clone the repo locally

    • git clone https://github.com/edoardottt/pwdsafety.git
  • pwdsafety has external dependencies, so they need to be pulled in:

    • cd pwdsafety
    • go get
  • Linux (Requires high perms, run with sudo)

    • make linux (to install)

    • make unlinux (to uninstall)

  • Windows (executable works only in pwdsafety folder. Alias?)

    • make windows (to install)

    • make unwindows (to uninstall)

Description 🔦

It reads from standard input the entered password.
First, it searches if the password or the password reversed is a well known pwd.
Then, just do little calculations, checking if the basic rules are respected, like if there are UPPERCASE CHARS, lowercase chars, numb3rs and symbols.
It stores the length of the password and the ratio [ unique different chars / total chars].
It calculates then the entropy of a password.
Password entropy is a measurement of how unpredictable a password is.
The formula for entropy is:
formula

Where:

  • E = password entropy
  • R = pool of unique characters
  • L = number of characters in your password
  • Then R^L = the number of possible passwords

When the score <= 68(reasonable) it generates a random password.

Scoring 💯

Max score: 100

Scores:

  • Very weak: 0 - 35
  • Weak: 36 - 59
  • Reasonable: 60 - 68
  • Strong: 69 - 80
  • Very strong: 81 -100

Scoring parameters:

  • Found in known password
  • Found in known password reversed
  • Password composition:
    • numbers
    • symbols
    • uppercase
    • lowercase
  • Unique different characters
  • Length
  • Entropy

Contributing 🛠

Just open an issue / pull request.

See also CONTRIBUTING.md and CODE OF CONDUCT.md

Thanks to fabaff and ecnepsnai.

License 📝

This repository is under GNU General Public License v3.0.
edoardoottavianelli.it to contact me.


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Go (196,062
Golang (32,696
Linux (16,487
Cli (15,408
Security (8,710
Command Line Tool (2,559
Security Tools (1,678
Password (1,640
Infosec (738
Golang Application (475
Security Scanner (230
Safety (205
Password Strength (148
Related Projects