The Passlib documentation has moved to https://passlib.readthedocs.io
passlib.hash.ldap_crypt
- LDAP crypt() Wrappers¶
Passlib provides support for all the standard
LDAP hash formats specified by RFC 2307.
One of these, identified by RFC 2307 as the {CRYPT}
scheme,
is somewhat different from the others.
Instead of specifying a password hashing scheme,
it’s supposed to wrap the host OS’s crypt()
.
Being host-dependant, the actual hashes supported
by this scheme may differ greatly between host systems.
In order to provide uniform support across platforms,
Passlib defines a corresponding ldap_crypt-scheme
class
for each of the standard unix hashes.
These classes all wrap the underlying implementations documented
elsewhere in Passlib, and can be used directly as follows:
>>> from passlib.hash import ldap_md5_crypt
>>> # hash password
>>> hash = ldap_md5_crypt.hash("password")
>>> hash
'{CRYPT}$1$gwvn5BO0$3dyk8j.UTcsNUPrLMsU6/0'
>>> # verify password
>>> ldap_md5_crypt.verify("password", hash)
True
>>> ldap_md5_crypt.verify("secret", hash)
False
>>> # determine if the underlying crypt() algorithm is supported
>>> # by your host OS, or if the builtin Passlib implementation is being used.
>>> # "os_crypt" - host supported; "builtin" - passlib version
>>> ldap_md5_crypt.get_backend()
"os_crypt"
See also
- password hash usage – for more usage examples
- ldap_{digest} – for the other standard LDAP hashes.
passlib.apps
– for a list of premade ldap contexts.
Interface¶
-
class
passlib.hash.
ldap_des_crypt
¶
-
class
passlib.hash.
ldap_bsdi_crypt
¶
-
class
passlib.hash.
ldap_md5_crypt
¶
-
class
passlib.hash.
ldap_bcrypt
¶
-
class
passlib.hash.
ldap_sha1_crypt
¶
-
class
passlib.hash.
ldap_sha256_crypt
¶
-
class
passlib.hash.
ldap_sha512_crypt
¶ All of these classes have the same interface as their corresponding underlying hash (e.g.
des_crypt
,md5_crypt
, etc).
Footnotes
[1] | The manpage for slappasswd - http://gd.tuwien.ac.at/linuxcommand.org/man_pages/slappasswd8.html. |
[2] | The basic format for these hashes is laid out in RFC 2307 - http://www.ietf.org/rfc/rfc2307.txt |