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
|
.. image:: _static/masthead.png
:align: center
:class: show-for-small
.. rst-class:: float-right
.. seealso:: :ref:`What's new in Passlib 1.7.4 <whats-new>`
==========================================
Passlib |release| documentation
==========================================
.. only:: devcopy
.. warning::
This is the documentation for a development version of Passlib.
For documentation of the latest stable version,
see `<https://passlib.readthedocs.io>`_.
.. rst-class:: without-title
.. note::
**2020-05-01: Passlib's public repository has moved to Heptapod!**
Due to BitBucket deprecating Mercurial support, Passlib's public repository and issue tracker
has been relocated. It's now located at `<https://foss.heptapod.net/python-libs/passlib>`_,
and is powered by `Heptapod <https://heptapod.net/>`_.
Hosting is being graciously provided by the people at
`Octobus <https://octobus.net/>`_ and `CleverCloud <https://clever-cloud.com/>`_!
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:`PBKDF2-SHA256 </lib/passlib.hash.pbkdf2_digest>` algorithm::
>>> # import the hash algorithm
>>> from passlib.hash import pbkdf2_sha256
>>> # generate new salt, and hash a password
>>> hash = pbkdf2_sha256.hash("toomanysecrets")
>>> hash
'$pbkdf2-sha256$29000$N2YMIWQsBWBMae09x1jrPQ$1t8iyB2A.WF/Z5JZv.lfCIhXXN33N23OSgQYThBYRfk'
>>> # verifying the password
>>> pbkdf2_sha256.verify("toomanysecrets", hash)
True
>>> pbkdf2_sha256.verify("joshua", hash)
False
.. rst-class:: toc-always-open
Getting Started
===============
This documentation is organized into two main parts:
a narrative walkthrough of Passlib, and a top-down API reference.
:doc:`install`
See this page for system requirements & installation instructions.
:doc:`narr/index`
New users in particular will want to visit the walkthrough, as it provides
introductory documentation including installation requirements,
an overview of what passlib provides, and a guide for getting started quickly.
:doc:`lib/index`
The API reference contains a top-down reference of the :mod:`!passlib` package.
:doc:`other`
This section contains additional things that don't
fit anywhere else, including an :doc:`FAQ <faq>` and a complete
:doc:`changelog <history/index>`.
Online Resources
================
.. table::
:class: fullwidth
:column-alignment: lr
=================== ===================================================
Latest Docs: `<https://passlib.readthedocs.io>`_
Latest News: `<https://foss.heptapod.net/python-libs/passlib/wikis/home>`_
Public Repo: `<https://foss.heptapod.net/python-libs/passlib>`_
Mailing List: `<https://groups.google.com/group/passlib-users>`_
Downloads @ PyPI: `<https://pypi.python.org/pypi/passlib>`_
=================== ===================================================
Hosting
=======
Thanks to the people at `Octobus <https://octobus.net/>`_ and `CleverCloud <https://clever-cloud.com/>`_
for providing the repository / issue tracker hosting, as well as development of `Heptapod <https://heptapod.net/>`_!
Thanks to `ReadTheDocs <https://readthedocs.io>`_ for providing documentation hosting!
|