--- id: authencoding version: "6.0" license: ZPL-2.1 license_treatment: unclear maintenance: aging --- # AuthEncoding — Framework for handling LDAP style password hashes. License: unclear · Maintenance: aging · Downloads: 136.5K/mo ## 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 above — 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 pip install authencoding uv add authencoding poetry add authencoding ## Installing 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_current - Install friction: low - Maintenance: aging - Downloads: 136.5K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags LDAP password hashing, password hash validation, LDAP authentication encoding, bcrypt password schemes, password digest schemes, authentication framework, secure password storage, ldap, password-hashing, zope [View on SkillFed](https://skillfed.io/packages/authencoding) · [View on PyPI](https://pypi.org/project/authencoding/)