Go to file
2020-05-11 07:23:43 +02:00
.azure-pipelines Build abi3 wheels with latest pip (#57) 2020-02-12 07:59:59 +01:00
.github Move to GitHub Actions (#58) 2020-03-30 16:27:59 +02:00
docs Wordsmithing & version bump 2020-05-10 17:17:56 +02:00
extras Remove appveyor files 2020-03-31 16:08:12 +02:00
src/argon2 Prepare 20.1.0 2020-05-11 07:23:43 +02:00
tests Disable deadline on test_argument_ranges (#52) 2019-06-03 16:21:47 +02:00
.gitignore Consistently use canonical name 2019-06-05 12:37:58 +02:00
.gitmodules Move libargon2 into extras dir too 2015-12-11 14:06:04 +01:00
.pre-commit-config.yaml Wordsmithing & version bump 2020-05-10 17:17:56 +02:00
.readthedocs.yml Move to GitHub Actions (#58) 2020-03-30 16:27:59 +02:00
AUTHORS.rst Drop Python 3.4 2019-08-06 20:48:27 +02:00
CHANGELOG.rst Prepare 20.1.0 2020-05-11 07:23:43 +02:00
codecov.yml Stop codecov comments 2018-06-18 08:25:21 +02:00
FAQ.rst Improve docs 2018-07-06 12:22:10 +02:00
LICENSE Initial work 2015-12-07 17:14:57 +01:00
MANIFEST.in Add AP wheel builder 2019-10-19 12:25:10 +02:00
pyproject.toml Get rid of .coveragerc 2020-01-13 09:32:00 +01:00
README.rst Move to GitHub Actions (#58) 2020-03-30 16:27:59 +02:00
SECURITY.md Create SECURITY.md 2019-05-27 18:10:25 +02:00
setup.py Add env variable ARGON2_CFFI_USE_SSE2 to override sse2 optimizations (#61) 2020-05-07 07:40:11 +02:00
tox.ini Move to GitHub Actions (#58) 2020-03-30 16:27:59 +02:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=====================================
CFFI-based Argon2 Bindings for Python
=====================================

.. image:: https://readthedocs.org/projects/argon2-cffi/badge/?version=stable
   :target: http://argon2-cffi.readthedocs.io/en/stable/?badge=stable
   :alt: Documentation Status

.. image:: https://github.com/hynek/argon2-cffi/workflows/CI/badge.svg?branch=master
   :target: https://github.com/hynek/argon2-cffi/actions?workflow=CI
   :alt: CI Status

.. image:: https://codecov.io/github/hynek/argon2-cffi/branch/master/graph/badge.svg
   :target: https://codecov.io/github/hynek/argon2-cffi
   :alt: Test Coverage

.. image:: https://www.irccloud.com/invite-svg?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1
   :target: https://www.irccloud.com/invite?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1
   :alt: IRC

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :target: https://github.com/ambv/black
   :alt: Code style: black

.. teaser-begin

`Argon2 <https://github.com/p-h-c/phc-winner-argon2>`_ won the `Password Hashing Competition <https://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("s3kr3tp4ssw0rd")
  >>> hash  # doctest: +SKIP
  '$argon2id$v=19$m=102400,t=2,p=8$tSm+JOWigOgPZx/g44K5fQ$WDyus6py50bVFIPkjA28lQ'
  >>> ph.verify(hash, "s3kr3tp4ssw0rd")
  True
  >>> ph.check_needs_rehash(hash)
  False
  >>> ph.verify(hash, "t0t411ywr0ng")
  Traceback (most recent call last):
    ...
  argon2.exceptions.VerifyMismatchError: The password does not match the supplied hash


``argon2-cffi``\ s documentation lives at `Read the Docs <https://argon2-cffi.readthedocs.io/>`_, the code on `GitHub <https://github.com/hynek/argon2-cffi>`_.
Its rigorously tested on Python 2.7, 3.5+, and PyPy.