blackpaper

A simple Password Strength Estimator

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version 0.1.0
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-09-04 07:26

Authors

  • George Lemon

Installation

nimble install blackpaper
choosenim install blackpaper
git clone https://github.com/openpeeps/blackpaper

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
blackpaper - - - - - - -

Dependencies

Package Version Optional
nim >= 2.0.0 No
floof - No

Source

Repository https://github.com/openpeeps/blackpaper
Homepage https://github.com/openpeeps/blackpaper
Registry Source nimble_official

README

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.