First release of pwdlib
🎉
Modern password hashing for Python
Quickstart
pip install 'pwdlib[argon2]'
from pwdlib import PasswordHash
password_hash = PasswordHash.recommended()
hash = password_hash.hash("herminetincture")
password_hash.verify(hash, "herminetincture") # True
Why pwdlib
?
For years, the de-facto standard to hash passwords was passlib
. Unfortunately, it has not been very active recently and its maintenance status is under question. Starting Python 3.13, passlib
won't work anymore.
That's why I decided to start pwdlib
, a password hash helper for the modern Python era. However, it's not designed to be a complete replacement for passlib
, which supports numerous hashing algorithms and features.
✅ Goals
- Provide an easy-to-use wrapper to hash and verify passwords
- Support modern and secure algorithms like Argon2 or Bcrypt
❌ Non-goals
- Support legacy hashing algorithms like MD5
- Implement algorithms directly — we should only rely on existing and battle-tested implementations