_images/masthead.png

Passlib 1.6.2 documentation

Welcome

Passlib is a password hashing library for Python 2 & 3, which provides cross-platform implementations of over 30 password hashing algorithms, as well as a framework for managing existing password hashes. It’s designed to be useful for a wide range of tasks, from verifying a hash found in /etc/shadow, to providing full-strength password hashing for multi-user application.

As a quick sample, the following code hashes and then verifies a password using the SHA256-Crypt algorithm:

>>> # import the hash algorithm
>>> from passlib.hash import sha256_crypt

>>> # generate new salt, and hash a password
>>> hash = sha256_crypt.encrypt("toomanysecrets")
>>> hash
'$5$rounds=80000$zvpXD3gCkrt7tw.1$QqeTSolNHEfgryc5oMgiq1o8qCEAcmye3FoMSuvgToC'

>>> # verifying the password
>>> sha256_crypt.verify("toomanysecrets", hash)
True
>>> sha256_crypt.verify("joshua", hash)
False

Content Summary

Introductory Materials

Installation
requirements & installation instructions
Library Overview
describes how Passlib is laid out
New Application Quickstart
choosing a password hash for new applications

Password Hashing Algorithms

passlib.hash
all the password hashes supported by Passlib –
PasswordHash interface
examples & documentation of the common hash interface used by all the hash algorithms in Passlib.

CryptContext Objects

passlib.context
provides the CryptContext class, a flexible container for managing and migrating between multiple hash algorithms.
passlib.apps
predefined CryptContext objects for managing the hashes used by MySQL, PostgreSQL, OpenLDAP, and others applications.
passlib.hosts
predefined CryptContext objects for managing the hashes found in Linux & BSD “shadow” files.

Application Helpers

passlib.apache
classes for manipulating Apache’s htpasswd and htdigest files.
passlib.ext.django
Django plugin which monkeypatches support for (almost) any hash in Passlib.

Other Documents

Modular Crypt Format
reference listing “modular crypt format” support across Unix systems.
Changelog
Passlib’s release history