https://github.com/antonkueltz/makwa
A password hashing algorithm that supports delegation
https://github.com/antonkueltz/makwa
delegation hashing kdf passwords
Last synced: about 1 year ago
JSON representation
A password hashing algorithm that supports delegation
- Host: GitHub
- URL: https://github.com/antonkueltz/makwa
- Owner: AntonKueltz
- License: unlicense
- Created: 2017-06-23T19:34:18.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-07-27T03:54:21.000Z (almost 9 years ago)
- Last Synced: 2025-03-06T02:48:43.505Z (over 1 year ago)
- Topics: delegation, hashing, kdf, passwords
- Language: Python
- Homepage: http://www.bolet.org/makwa/
- Size: 1.95 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
=====
Makwa
=====
.. image:: https://travis-ci.org/AntonKueltz/makwa.svg?branch=master
:target: https://travis-ci.org/AntonKueltz/makwa
.. image:: https://badge.fury.io/py/makwa.svg
:target: https://badge.fury.io/py/makwa
Makwa is a password hashing function designed by Thomas Pornin. This implementation is in pure python with no 3rd party dependencies. From the `Passwords14 Slides`_:
.. code::
Makwa is a candidate to the Password Hashing Competition.
Main characteristics:
* based on modular arithmetics
* CPU-only cost (not memory-hard)
* algebraic structure enables advanced features: offline work
* factor increase, fast path, escrow
* can be delegated
* named after the Ojibwe name for the American black bear
Reference Material
==================
- `Homepage`_
- `Spec Paper`_
- `Passwords14 Slides`_
.. _Homepage: http://www.bolet.org/makwa/
.. _Spec Paper: http://www.bolet.org/makwa/makwa-spec-20150422.pdf
.. _Passwords14 Slides: http://www.bolet.org/makwa/Makwa-Passwords14LV.pdf
Installation
============
.. code:: bash
pip install makwa
Usage
=====
.. code:: python
from makwa import hashpw, checkpw
hashed_pw = hashpw(
password,
n,
h=,
salt=,
work_factor=,
pre_hash=,
post_hash=
)
# returns a boolean
is_valid = checkpw(
password,
hashed_pw,
n,
h=
)