Skip to content

openpeeps/blackpaper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

A super simple Password Strength Estimator
Written in πŸ‘‘ Nim language

nimble install blackpaper

API reference
Github Actions Github Actions

😍 Key Features

  • πŸš€ Fast and efficient implementation in Nim language
  • πŸ‘Œ Estimate on length β€’ character diversity β€’ repetition β€’ sequential patterns β€’ leet substitutions
  • πŸ”Ž Optional common password list for penalizing known weak/common passwords
  • πŸš€ SIMD-accelerated fuzzy matching for fast detection using pkg/floof
  • πŸ’ͺ Framework-agnostic, can be used in any Nim project

Note

This package does not provide a common password list. You can find one online and feed it to the estimator.

Examples

Here is an example password strength estimation using Blackpaper without a common password list:

import blackpaper

let res = passwordStrength("P@ssw0rd123")
echo "Score: ", res.score
echo "Strength: ", res.strength       # Weak
echo "Reason: ", res.reason           # TooPredictable

And here is an example with a common password list.

import blackpaper

let commonPasswords = @["password", "123456", "qwerty", "abc123", "P@ssw0rd123",
                      "word", "fox", "jumped", "over", "lazy", "dogs"]

for pwd in ["Word Fox Jumped Over", "P@ssw0rd", "3s4F5j~@!1Z6woG"]:
  let res = passwordStrength(pwd, commonPasswords)
  echo "Password: ", pwd
  echo "Score: ", res.score
  echo "Strength: ", res.strength
  echo "Reason: ", res.reason
  echo "-----------------------------"

❀ Contributions & Support

🎩 License

MIT license. Made by Humans from OpenPeeps.
Copyright OpenPeeps & Contributors β€” All rights reserved.

Releases

No releases published

Packages

 
 
 

Contributors

Languages