Go to file
2022-05-19 07:17:38 +02:00
.github Clarify changelog in contributing 2022-05-19 07:17:38 +02:00
docs Clarify i vs d vs id some more 2022-03-22 05:53:20 +01:00
src/argon2 Start new development cycle 2021-12-11 12:47:54 +01:00
tests [pre-commit.ci] pre-commit autoupdate (#117) 2022-02-07 18:38:16 +01:00
.gitignore Extract CFFI bindings into argon2-cffi-bindings 2021-11-28 12:49:02 +01:00
.gitmodules Extract CFFI bindings into argon2-cffi-bindings 2021-11-28 12:49:02 +01:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate (#120) 2022-04-04 21:26:35 +02:00
.readthedocs.yml Move docs to 3.10 2021-11-29 09:26:03 +01:00
AUTHORS.rst Link myself 2021-11-29 17:32:34 +01:00
CHANGELOG.md Fix changelog 2022-03-22 05:55:19 +01:00
FAQ.rst Update FAQ 2022-03-22 06:15:11 +01:00
LICENSE Initial work 2015-12-07 17:14:57 +01:00
mypy.ini Add Types (#112) 2021-12-08 11:32:57 +01:00
pyproject.toml Fix copy/pasted tool.flit.sdist 2022-05-19 07:17:38 +02:00
README.rst Clarify that the RFC is in charge now 2022-03-21 16:32:12 +01:00
tox.ini Add Types (#112) 2021-12-08 11:32:57 +01:00
typing_examples.py Add Types (#112) 2021-12-08 11:32:57 +01:00

===================
*Argon2* for Python
===================

.. image:: https://img.shields.io/badge/Docs-Read%20The%20Docs-black
   :target: https://argon2-cffi.readthedocs.io/
   :alt: Documentation

.. image:: https://img.shields.io/badge/license-MIT-C06524
   :target: https://github.com/hynek/argon2-cffi/blob/main/LICENSE
   :alt: License: MIT

.. image:: https://img.shields.io/pypi/v/argon2-cffi
   :target: https://pypi.org/project/argon2-cffi/
   :alt: PyPI version

.. image:: https://static.pepy.tech/personalized-badge/argon2-cffi?period=month&units=international_system&left_color=grey&right_color=blue&left_text=Downloads%20/%20Month
   :target: https://pepy.tech/project/argon2-cffi
   :alt: Downloads / Month


.. -begin-short-

`Argon2 <https://github.com/p-h-c/phc-winner-argon2>`_ won the `Password Hashing Competition <https://www.password-hashing.net/>`_ and *argon2-cffi* is the simplest way to use it in Python and PyPy:

.. code-block:: pycon

  >>> from argon2 import PasswordHasher
  >>> ph = PasswordHasher()
  >>> hash = ph.hash("correct horse battery staple")
  >>> hash  # doctest: +SKIP
  '$argon2id$v=19$m=65536,t=3,p=4$MIIRqgvgQbgj220jfp0MPA$YfwJSVjtjSU0zzV/P3S9nnQ/USre2wvJMjfCIjrTQbg'
  >>> ph.verify(hash, "correct horse battery staple")
  True
  >>> ph.check_needs_rehash(hash)
  False
  >>> ph.verify(hash, "Tr0ub4dor&3")
  Traceback (most recent call last):
    ...
  argon2.exceptions.VerifyMismatchError: The password does not match the supplied hash

.. -end-short-


.. -begin-meta-

Project Information
===================

*argon2-cffi* is available from `PyPI <https://pypi.org/project/argon2-cffi/>`_, the documentation lives at `Read the Docs <https://argon2-cffi.readthedocs.io/>`_, the code on `GitHub <https://github.com/hynek/argon2-cffi>`_.
The low-level Argon2 CFFI bindings are maintained in the separate project `argon2-cffi-bindings <https://github.com/hynek/argon2-cffi-bindings>`_.

It targets Python 3.6 and newer, and PyPy3.
The last version that works with Python 2.7 is 20.1.0, and the last version that works with Python 3.5 is 21.1.0.


*argon2-cffi* for Enterprise
----------------------------

Available as part of the Tidelift Subscription.

The maintainers of *argon2-cffi* and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. `Learn more. <https://tidelift.com/subscription/pkg/pypi-argon2-cffi?utm_source=undefined&utm_medium=referral&utm_campaign=enterprise&utm_term=repo>`_

.. -end-meta-