AuthEncoding
Framework for handling LDAP style password hashes.
What it is and what it does
AuthEncoding is a password hashing framework extracted from Zope's AccessControl module. It handles the creation and validation of LDAP-style password hashes using pluggable schemes—SHA256, SSHA, CRYPT, and optionally bcrypt. The package provides a clean interface for encoding passwords and checking them against stored hashes, making it suitable for web applications and directory services that need standards-compliant password management without a dependency on the full Zope stack.
The package is pure Python with no runtime dependencies, making it lightweight and straightforward to integrate. It supports modern Python versions (3.9 through 3.13, with preliminary support for 3.14) and both CPython and PyPy. Recent updates added support for non-latin-1 characters in passwords, broadening its usability for international applications.
Use it for:
- Validating user passwords against LDAP-stored hashes in web applications or directory integrations.
- Encoding new passwords using standard schemes (SHA256, SSHA, CRYPT) for storage in LDAP directories.
- Adding bcrypt-based password hashing to legacy systems that currently use weaker schemes.
- Building authentication layers in Zope applications without pulling in the full AccessControl package.
- Migrating password storage from one hashing scheme to another by validating old hashes and re-encoding with new schemes.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
AuthEncoding provides a framework for creating, validating, and managing LDAP-style password hashes in Python, supporting multiple hashing schemes including bcrypt when installed as an optional extra.
Yes, if you need LDAP-compatible password hashing or are working within a Zope ecosystem. The package is mature, has no dependencies, and supports current Python versions. However, maintenance is aging (534 days since last release), so verify that security patches are still responsive if this is critical to your authentication pipeline. For general-purpose password hashing outside LDAP contexts, consider more actively maintained alternatives.
Install
authencoding on PyPI
pip
pip install authencodinguv
uv add authencodingpoetry
poetry add authencodingInstalling AuthEncoding
Before you install
Low friction: pure Python wheel with no runtime dependencies. Maintenance is aging—last release was 534 days ago—but the repository remains active with a recent commit and the package supports current Python versions (3.9+).
License in practice
Licensed under ZPL-2.1 (Zope Public License), classified as unclear treatment. Review the license terms if your project has specific open-source compliance requirements.
Quickstart
pip install authencoding
from AuthEncoding.interfaces import IPasswordScheme
from AuthEncoding.authencoding import SHA256DigestScheme
scheme = SHA256DigestScheme()
encoded = scheme.encodePassword('mypassword')
matches = scheme.checkPassword(encoded, 'mypassword')
Requires Python 3.9 or later. Optional bcrypt support requires the bcrypt extra: pip install authencoding[bcrypt]
Verify before relying
- Whether the aging maintenance status (534 days since last release) affects security patch responsiveness for password-handling code.
- Specific non-latin-1 character support added in 6.0—scope and limitations of that support.
Package facts
| License | ZPL-2.1 (unclear) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | aging — 534 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 136,534/month — #11,394 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: AuthEncoding-6.0-py3-none-any.whl
Tags
More LDAP packages
ldap3 is a pure Python LDAP V3 client library…
copyleft · top 5,000 on PyPI
python-ldapProvides an object-oriented Python API to…
permissive · top 5,000 on PyPI
ldaptorLdaptor is a pure-Python LDAP client library…
permissive · top 5,000 on PyPI
django-auth-ldapProvides a Django authentication backend that…
permissive · top 15,000 on PyPI
python3-ldapThis package is a redirect to ldap3—a pure…
copyleft · top 15,000 on PyPI
bcryptbcrypt provides modern password hashing using…
permissive · top 1,000 on PyPI
Flask-BcryptFlask-Bcrypt wraps the bcrypt password-hashing…
permissive · top 5,000 on PyPI
pwdlibProvides a modern, easy-to-use wrapper for…
permissive · top 5,000 on PyPI
AccessControlAccessControl provides a security framework for…
unclear · top 15,000 on PyPI
passlibPasslib provides a framework for hashing and…
permissive · top 1,000 on PyPI
py-multihashEncodes and decodes multihash digests,…
permissive · top 15,000 on PyPI
zope.contenttypeGuesses MIME types from filenames and body…
unclear · top 15,000 on PyPI