1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
==========================================
Passlib |release| 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 :doc:`SHA256-Crypt </lib/passlib.hash.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
===============
.. rst-class:: floater
.. seealso:: :ref:`What's new in Passlib 1.6 <whats-new>`
Introductory Materials
----------------------
:doc:`install`
requirements & installation instructions
:doc:`overview`
describes how Passlib is laid out
:doc:`New Application Quickstart <new_app_quickstart>`
choosing a password hash for new applications
----
Password Hashing Algorithms
---------------------------
:mod:`passlib.hash`
all the password hashes supported by Passlib --
- :doc:`Overview <lib/passlib.hash>`
- :ref:`mcf-hashes`
- :ref:`ldap-hashes`
- :ref:`database-hashes`
- :ref:`windows-hashes`
- :ref:`other-hashes`
:doc:`PasswordHash interface <password_hash_api>`
examples & documentation of the common hash interface
used by all the hash algorithms in Passlib.
CryptContext Objects
--------------------
:mod:`passlib.context`
provides the :class:`!CryptContext` class, a flexible container
for managing and migrating between multiple hash algorithms.
:mod:`passlib.apps`
predefined CryptContext objects for managing the hashes used by
MySQL, PostgreSQL, OpenLDAP, and others applications.
:mod:`passlib.hosts`
predefined CryptContext objects for managing the hashes
found in Linux & BSD "shadow" files.
Application Helpers
-------------------
:mod:`passlib.apache`
classes for manipulating Apache's ``htpasswd`` and ``htdigest`` files.
:mod:`passlib.ext.django`
Django plugin which monkeypatches support for (almost) any hash in Passlib.
..
Support Modules
---------------
:mod:`passlib.exc`
custom warnings and exceptions used by Passlib
:mod:`passlib.registry`
:mod:`passlib.utils`
----
Other Documents
---------------
:doc:`modular_crypt_format`
reference listing "modular crypt format" support across Unix systems.
:doc:`Changelog <history>`
Passlib's release history
Online Resources
================
.. table::
:class: fullwidth
:column-alignment: lr
================ ===================================================
Homepage: `<http://passlib.googlecode.com>`_
Online Docs: `<http://packages.python.org/passlib>`_
Discussion: `<http://groups.google.com/group/passlib-users>`_
---------------- ---------------------------------------------------
---------------- ---------------------------------------------------
PyPI: `<http://pypi.python.org/pypi/passlib>`_
Downloads: `<http://code.google.com/p/passlib/downloads>`_
Source: `<http://code.google.com/p/passlib/source>`_
================ ===================================================
|