{ "info": { "author": "Murray Christopherson", "author_email": "murraychristopherson@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries" ], "description": "# password-hashing-python\n\n[![Build Status](https://travis-ci.org/murrple-1/password-hashing-python.svg?branch=master)](https://travis-ci.org/murrple-1/password-hashing-python) [![Coverage Status](https://coveralls.io/repos/github/murrple-1/password-hashing-python/badge.svg?branch=master)](https://coveralls.io/github/murrple-1/password-hashing-python?branch=master) [![PyPI version](https://badge.fury.io/py/password-hashing-python.svg)](https://badge.fury.io/py/password-hashing-python)\n\nPython implementation of https://github.com/defuse/password-hashing (v1.0)\n\nSupports both Python `>=v2.7.9` and `>=3.4`.\n\nPlease note, this code has not been scrutinized or peer-reviewed at all - though I'm interested, if anyone wants to look it over.\n\nIt is a naive attempt to re-implement `PasswordHash.php`.\n\n# Installation\n\n`pip install password-hashing-python`\n\n# Usage\n\n## Creating a hash-string\n```Python Console\n>>> import password_hashing\n>>> _hash = password_hashing.create_hash('your_password')\n>>> print _hash\nb'sha1:64000:18:B6oWbvtHvu8qCgoE75wxmvpidRnGzGFt:R1gkPOuVjqIoTulWP1TABS0H'\n>>> # snip: save `_hash` to a DB\n```\n\n## Validating the password\n```Python Console\n>>> # snip: retrieve `_hash` from DB\n>>> import password_hashing\n>>> password_hashing.validate_password('your_password', _hash)\nTrue\n>>> password_hashing.validate_password('wrong_password', _hash)\nFalse\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/murrple-1/password-hashing-python", "keywords": "password hashing pbkdf2", "license": "", "maintainer": "", "maintainer_email": "", "name": "password-hashing-python", "package_url": "https://pypi.org/project/password-hashing-python/", "platform": "", "project_url": "https://pypi.org/project/password-hashing-python/", "project_urls": { "Homepage": "https://github.com/murrple-1/password-hashing-python" }, "release_url": "https://pypi.org/project/password-hashing-python/0.3.0/", "requires_dist": [ "six", "streql" ], "requires_python": "", "summary": "Python implementation of https://github.com/defuse/password-hashing (v1.0)", "version": "0.3.0" }, "last_serial": 3827463, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "41ceeaca0dff8d03d4ccc1ac0aa50879", "sha256": "898d94b1aef725bf761577c466fdf562baba91a0071365ad1cf8839a6c119d52" }, "downloads": -1, "filename": "password_hashing_python-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "41ceeaca0dff8d03d4ccc1ac0aa50879", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4052, "upload_time": "2018-01-31T20:53:12", "url": "https://files.pythonhosted.org/packages/13/e2/d2e7e580af09e4e592b761211962bad1547decee8fadb8dc7433aa85a27c/password_hashing_python-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9a26950585486ab35c2a5095e8ffcae3", "sha256": "65e5b4821b1aaf55ce4d3ab328443a328ee4405fe28f08819042e9019c6c488f" }, "downloads": -1, "filename": "password-hashing-python-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9a26950585486ab35c2a5095e8ffcae3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3037, "upload_time": "2018-01-31T20:53:17", "url": "https://files.pythonhosted.org/packages/38/cc/379a50027696bf550ab94479710233b5783c81fb989a081efd3762b35193/password-hashing-python-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "87a85981f5d0e8d5109b609796660f6f", "sha256": "65b766a5e073b13fa5736e551e99f1aef943e96f98c6fb1969c1e0eada7fb39a" }, "downloads": -1, "filename": "password_hashing_python-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "87a85981f5d0e8d5109b609796660f6f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3315, "upload_time": "2018-04-10T00:23:46", "url": "https://files.pythonhosted.org/packages/86/ce/36c3a3adc08c672d880e8d99492d3313969c6ca462fe3be9928e57f1bdf9/password_hashing_python-0.2.0-py2.py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ba5d7a9dca0ba8cfce34543a39f6053b", "sha256": "540498a62c49b55c140535ffa0fbce6293777af01dbd7cec6c45bc1afd7e3379" }, "downloads": -1, "filename": "password_hashing_python-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba5d7a9dca0ba8cfce34543a39f6053b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3370, "upload_time": "2018-05-02T15:18:18", "url": "https://files.pythonhosted.org/packages/05/46/8248d0684afc7139be570fdcddca19ef8cbc77acd1f1cc9da0458f188a72/password_hashing_python-0.3.0-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ba5d7a9dca0ba8cfce34543a39f6053b", "sha256": "540498a62c49b55c140535ffa0fbce6293777af01dbd7cec6c45bc1afd7e3379" }, "downloads": -1, "filename": "password_hashing_python-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ba5d7a9dca0ba8cfce34543a39f6053b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3370, "upload_time": "2018-05-02T15:18:18", "url": "https://files.pythonhosted.org/packages/05/46/8248d0684afc7139be570fdcddca19ef8cbc77acd1f1cc9da0458f188a72/password_hashing_python-0.3.0-py2.py3-none-any.whl" } ] }