AuthEncoding
Framework for handling LDAP style password hashes.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later.
- Optional bcrypt support requires the bcrypt extra: pip install authencoding[bcrypt]
- Low friction: pure Python wheel with no runtime dependencies.
License · maintenance · safety
ZPL-2.1 (unclear) — 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.
last release 2025-02-26 (534 days) · last repo commit 2025-10-16 · 1 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 136,534 downloads/mo, #11,394 on PyPI
Alternatives
Verify before relying
pip install authencoding
from AuthEncoding.interfaces import IPasswordScheme
from AuthEncoding.authencoding import SHA256DigestScheme
scheme = SHA256DigestScheme()
encoded = scheme.encodePassword('mypassword')
matches = scheme.checkPassword(encoded, 'mypassword')- 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.
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 on it.
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
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+).
Requires Python 3.9 or later. Optional bcrypt support requires the bcrypt extra: pip install authencoding[bcrypt]
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')
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 |
| Classifiers | Development Status :: 6 - MatureEnvironment :: Web EnvironmentFramework :: ZopeFramework :: Zope :: 2Framework :: Zope :: 4Framework :: Zope :: 5License :: OSI Approved :: Zope Public LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: System :: Systems Administration :: Authentication/Directory :: LDAP |
Evidence: AuthEncoding-6.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “LDAP password hashing”
- AuthEncodingAuthEncoding provides a framework for creating, validating, and…
- ldaptorLdaptor is a pure-Python LDAP client library built on Twisted that…
- libpassA password hashing library providing implementations of over 30…
Give your agent the search over MCP, or paste the wish link into any chat.
More Authentication/Directory packages
ldap3 is a pure Python LDAP V3 client library that implements RFC 4510, providing both low-level LDAP operations and a high-level abstraction layer for directory queries and authentication.
Install it if you need to authenticate against or query LDAP directories.
Implements OpenID authentication protocol support for Python 3 servers and clients, allowing applications to delegate user authentication to OpenID providers.
However, be aware that active development stopped in 2020; if you require ongoing security patches or feature development, consider whether OpenID remains the right…
Provides enhanced HTTPS support for Python's httplib and urllib2 (or http.client and urllib in Python 3) by wrapping PyOpenSSL to enable full SSL peer verification using certificate validation.
Provides an object-oriented Python API to connect to and query LDAP directory servers, wrapping OpenLDAP client libraries and offering utilities for LDIF processing, LDAP URLs, and schema handling.
Provides native Kerberos client authentication on Windows by wrapping Microsoft's SSPI, with an API compatible with pykerberos for GSSAPI-based authentication flows.
Adds complete two-factor authentication to Django projects, supporting authentication via one-time passwords, SMS, call, token generator apps, and hardware tokens like YubiKey.
See also bcrypt · Flask-Bcrypt · pwdlib · libpass · AccessControl · django-auth-ldap · passlib · py-multihash · zope.contenttype