{ "info": { "author": "Kyra F. Kitsune", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pyHIBP (pyHave I Been Pwned)\n============================\n[![image](https://img.shields.io/pypi/v/pyHIBP.svg)](https://pypi.org/project/pyHIBP/)\n[![image](https://img.shields.io/pypi/l/pyHIBP.svg)](https://pypi.org/project/pyHIBP/)\n[![image](https://mybinder.org/badge.svg)](https://mybinder.org/v2/gl/kitsunix%2FpyHIBP%2FpyHIBP-binder/master)\n\n\nA Python interface to Troy Hunt's 'Have I Been Pwned?' (HIBP) public API. A full reference to the API\nspecification can be found at the [HIBP API Reference](https://haveibeenpwned.com/API/v2).\n\nThis module detects when the rate limit of the API has been hit, and raises a RuntimeError when the limit\nis exceeded, or when another API-defined error condition is encountered based on the submitted data. When\ndata is found from a call, the data returned will be in the format as retrieved from the endpoint, documented\nin the return-type information for the relevant function.\n\nNote that the `pwnedpasswords` API backend does not have a rate limit. If you are intending to bulk-query passwords or\nhashes, you should consider downloading the raw data files accessible via the [Pwned Passwords](https://haveibeenpwned.com/Passwords) page.\n\nInstalling\n----------\n```bash\n$ pip install pyhibp\n```\n\nExample usage\n-------------\nFor an interactive example, check out the Jupyter Notebook for [`pyhibp`](https://mybinder.org/v2/gl/kitsunix%2FpyHIBP%2FpyHIBP-binder/master?filepath=/pyHIBP.ipynb),\nas well as [`pyhibp.pwnedpasswords`](https://mybinder.org/v2/gl/kitsunix%2FpyHIBP%2FpyHIBP-binder/master?filepath=/pyHIBP.pwnedpasswords.ipynb).\n\n```python\nimport pyhibp\nfrom pyhibp import pwnedpasswords as pw\n\n# Required: A descriptive user agent must be set describing the application consuming\n# the HIBP API\npyhibp.set_user_agent(ua=\"Awesome application/0.0.1 (An awesome description)\")\n\n# Check a password to see if it has been disclosed in a public breach corpus\nresp = pw.is_password_breached(password=\"secret\")\nif resp:\n print(\"Password breached!\")\n print(\"This password was used {0} time(s) before.\".format(resp))\n\n# Get data classes in the HIBP system\nresp = pyhibp.get_data_classes()\n\n# Get all breach information\nresp = pyhibp.get_all_breaches()\n\n# Get a single breach\nresp = pyhibp.get_single_breach(breach_name=\"Adobe\")\n\n# An API key is required for calls which search by email address\n# (so get_pastes/get_account_breaches)\n# See \nHIBP_API_KEY = None\n\nif HIBP_API_KEY:\n # Set the API key prior to using the functions which require it.\n pyhibp.set_api_key(key=HIBP_API_KEY)\n\n # Get pastes affecting a given email address\n resp = pyhibp.get_pastes(email_address=\"test@example.com\")\n\n # Get breaches that affect a given account\n resp = pyhibp.get_account_breaches(account=\"test@example.com\", truncate_response=True)\n```\n\nDeveloping\n----------\nThis project is currently intended to be compatible with Python 2 and Python 3. As such, we use virtual environments via `pipenv`.\nTo develop or test, execute the following:\n\n```bash\n# Install the prerequisite virtual environment provider\n$ pip install pipenv\n# Initialize the pipenv environment and install the module within it\n$ make dev\n# To run PEP8, tests, and check the manifest\n$ make tox\n```\n\nOther commands can be found in the `Makefile`.\n\nGoals\n-----\n- Synchronize to the latest HIBP API(s), implementing endpoint accessing functions where it makes sense. For instance,\n in the interest of security, the ability to submit a SHA-1 to the Pwned Passwords endpoint is not implemented. See\n \"Regarding password checking\" below for further details.\n- For breaches and pastes, act as an intermediary; return the JSON as received from the service.\n\nRegarding password checking\n---------------------------\n- For passwords, the option to supply a plaintext password to check is provided as an implementation convenience.\n- For added security, `pwnedpasswords.is_password_breached()` only transmits the first five characters of the SHA-1\n hash to the Pwned Passwords API endpoint; a secure password will remain secure without disclosing the full hash.\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://gitlab.com/kitsunix/pyHIBP/pyHIBP", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyhibp", "package_url": "https://pypi.org/project/pyhibp/", "platform": "", "project_url": "https://pypi.org/project/pyhibp/", "project_urls": { "Homepage": "https://gitlab.com/kitsunix/pyHIBP/pyHIBP" }, "release_url": "https://pypi.org/project/pyhibp/4.0.0/", "requires_dist": [ "requests (>=2.20.0)", "check-manifest ; extra == 'dev'", "flake8 ; extra == 'dev'", "pytest ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "tox ; extra == 'dev'" ], "requires_python": "", "summary": "An interface to Troy Hunt's 'Have I Been Pwned' public API", "version": "4.0.0" }, "last_serial": 5660963, "releases": { "2.0.0": [ { "comment_text": "", "digests": { "md5": "f6edf1c60f0a6e694479a8bccfc36167", "sha256": "0202971e4b6fdee6a916557ec4c67cceb7a836a2ad2d3e34b139147fc651ea29" }, "downloads": -1, "filename": "pyHIBP-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f6edf1c60f0a6e694479a8bccfc36167", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7717, "upload_time": "2018-02-01T03:43:03", "url": "https://files.pythonhosted.org/packages/1c/79/d4de50572263847f02af8468598a773c645615acfcd3377f6f22239b2152/pyHIBP-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe58b7117c0bdbeb0512b37b76c9ddd5", "sha256": "b563b6e00470dc9e4b90043bb4e053b06eea7b7b77f9a84740bb254dfacdb58d" }, "downloads": -1, "filename": "pyHIBP-2.0.0.tar.gz", "has_sig": false, "md5_digest": "fe58b7117c0bdbeb0512b37b76c9ddd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22325, "upload_time": "2018-02-01T03:43:05", "url": "https://files.pythonhosted.org/packages/53/f8/ea04ab0f85dd24696f426682a4148b50454583a6300b3aee4c128e5ace76/pyHIBP-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "6a60590824c597be78d741732dd302cd", "sha256": "0521471365b0d61473caeecb5a4799ce4353e1f7cd3459da149de0899a0845fd" }, "downloads": -1, "filename": "pyHIBP-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6a60590824c597be78d741732dd302cd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9647, "upload_time": "2018-03-09T22:07:10", "url": "https://files.pythonhosted.org/packages/2e/0a/64097d81ad7713c6b17dcfbbf15eeddc0d3e08ffc14417ac269c7e0ab720/pyHIBP-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f40a384fd8b04d869605e1b3a13a3a18", "sha256": "a08ef186dd2d9aef78446988cdc4fe4c19e1eed275afb9ec5aaae7d01b648472" }, "downloads": -1, "filename": "pyHIBP-2.0.1.tar.gz", "has_sig": false, "md5_digest": "f40a384fd8b04d869605e1b3a13a3a18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25125, "upload_time": "2018-03-09T22:07:11", "url": "https://files.pythonhosted.org/packages/13/7b/6cf8830b54512dc1083f9fab2276a735b7aacf70d74845d060c034b4e7d5/pyHIBP-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "042a736dd5d7342da9bea7fc02eecd64", "sha256": "d7bde08221cabe3ea2f9b5730db317dc0e2b501ead7680b841f127dfda09496e" }, "downloads": -1, "filename": "pyHIBP-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "042a736dd5d7342da9bea7fc02eecd64", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7480, "upload_time": "2018-04-15T04:49:53", "url": "https://files.pythonhosted.org/packages/d6/c3/888100e0584b044ce3e7a1b0bd7dd25d10be8afa0865f32e98ede7b03de0/pyHIBP-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "18307a8ce5ba383a0f47678931a482c2", "sha256": "6bb8325b0788d84e5eedd225fcb9d5a736b3b7a8deadf316a232e4c784cd8997" }, "downloads": -1, "filename": "pyHIBP-2.0.2.tar.gz", "has_sig": false, "md5_digest": "18307a8ce5ba383a0f47678931a482c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25276, "upload_time": "2018-04-15T04:49:55", "url": "https://files.pythonhosted.org/packages/75/cc/3f94d88658a0acbe97d5413df961cd817ea5c48b4298a43d11d8c84b07e2/pyHIBP-2.0.2.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "96029bbb912a7ce2277f5c92b6b26755", "sha256": "59cf4400ba70e784c358e1f58a48bed44f28b9e73726617fa757e80c6c4891cc" }, "downloads": -1, "filename": "pyHIBP-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "96029bbb912a7ce2277f5c92b6b26755", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7059, "upload_time": "2018-07-21T04:19:41", "url": "https://files.pythonhosted.org/packages/8e/5d/7ff31aae01fcbd2318ac0202bf2e6721e623afa3fb49fc4fc1580b213e4a/pyHIBP-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fc4b434a8c6a8d697172b5bed8e57b6a", "sha256": "2056a5264fffb54ffddbbb9daffb9372a096b1f90e5fb8b6ef66581390e0fae3" }, "downloads": -1, "filename": "pyHIBP-2.1.0.tar.gz", "has_sig": false, "md5_digest": "fc4b434a8c6a8d697172b5bed8e57b6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25189, "upload_time": "2018-07-21T04:19:42", "url": "https://files.pythonhosted.org/packages/d2/f6/bf83e39359739db1355f81287d4433000dad365222e5807356e5fd67ad69/pyHIBP-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "ed03e6615122dd4dd35782d589daa166", "sha256": "721e4a4fa140bb3f63615bc3f9f37ef7e9b45d9380fa84c9b8e2a6aa54b2d60c" }, "downloads": -1, "filename": "pyHIBP-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed03e6615122dd4dd35782d589daa166", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7086, "upload_time": "2018-09-18T23:00:26", "url": "https://files.pythonhosted.org/packages/fa/e4/e437659c0468b710efb73bf1bbde8305bf995dd9f49ad7f7285079540421/pyHIBP-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "adc732b24f26fbb88fba25722ae07361", "sha256": "9df685f6f8951f95d6546657595576490484b49d2a3bf4a6ea9d5c0e78047d76" }, "downloads": -1, "filename": "pyHIBP-2.1.1.tar.gz", "has_sig": false, "md5_digest": "adc732b24f26fbb88fba25722ae07361", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25298, "upload_time": "2018-09-18T23:00:28", "url": "https://files.pythonhosted.org/packages/c4/b6/0e730114e497e312308842e901b09e71affa890c9822cd3b163196e68b07/pyHIBP-2.1.1.tar.gz" } ], "2.1.1.post1": [ { "comment_text": "", "digests": { "md5": "1da9f4ab7114852bf09b70d7e5755f51", "sha256": "7e926a26708d5502ade5cd8a0b2f7b3426f25df9bd09cbd181276c3c18acab9a" }, "downloads": -1, "filename": "pyHIBP-2.1.1.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1da9f4ab7114852bf09b70d7e5755f51", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19194, "upload_time": "2018-10-25T03:22:42", "url": "https://files.pythonhosted.org/packages/a9/93/59de93c11c8336571874e7437e65fe4f00160d41eaa7f877fecabdc14cf4/pyHIBP-2.1.1.post1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "90bfff55f880b0b5b4533a5f4488d53c", "sha256": "fde7649dc2f25a2bb0bb1f4ecb6e7136c95ea55ce6a76a6d8f5d46b17a7c52b4" }, "downloads": -1, "filename": "pyHIBP-2.1.1.post1.tar.gz", "has_sig": false, "md5_digest": "90bfff55f880b0b5b4533a5f4488d53c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25564, "upload_time": "2018-10-25T03:22:44", "url": "https://files.pythonhosted.org/packages/25/b9/f3654e647dab0fc89fe3d35632d77ea3773f11862dd938236f781d528c3d/pyHIBP-2.1.1.post1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "cb717e6fcea9c03ae455d48b31435b1c", "sha256": "9f8a893c5674a27e19b97dab823ce88b9eb04bdcbd83f3c40f4ac49a98870fe7" }, "downloads": -1, "filename": "pyhibp-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb717e6fcea9c03ae455d48b31435b1c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19177, "upload_time": "2018-11-10T01:56:55", "url": "https://files.pythonhosted.org/packages/81/59/2faf846a1bd9384f0c257c36a18df8a8cb5cbef2e33272baa8fd430e7155/pyhibp-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "228d58d3326c8c6d75c778796b644355", "sha256": "e0bf5a9e60648619a741b105b3b2658e2385a9b324cce440b7f4dd665a8e5c03" }, "downloads": -1, "filename": "pyhibp-3.0.0.tar.gz", "has_sig": false, "md5_digest": "228d58d3326c8c6d75c778796b644355", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26289, "upload_time": "2018-11-10T01:56:57", "url": "https://files.pythonhosted.org/packages/df/7d/e35649df880b34408b5075ed01fca5ac76e932f56e1884d637ae65ac3465/pyhibp-3.0.0.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "58597ba7398d8d6d1a95d74126871661", "sha256": "7dd68f41cbd722000135ab8c900c271a575c6dc3dfb716e399d93e0de4721fce" }, "downloads": -1, "filename": "pyhibp-3.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "58597ba7398d8d6d1a95d74126871661", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 19859, "upload_time": "2019-06-30T09:21:24", "url": "https://files.pythonhosted.org/packages/7d/8e/576f575b8574d5e9db742809871df75b478169bdd439259bd0d23c199d96/pyhibp-3.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e72fa50067c364d72a60cc1cc74f52a1", "sha256": "7873dea2dd309fdd67a7479741d434c29f40ff385018fc9676880ec001cebcf1" }, "downloads": -1, "filename": "pyhibp-3.1.0.tar.gz", "has_sig": false, "md5_digest": "e72fa50067c364d72a60cc1cc74f52a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27859, "upload_time": "2019-06-30T09:21:25", "url": "https://files.pythonhosted.org/packages/7a/dc/6f3fe24387b6b55ccdb3afbf5fd45389307ad2b9bba69beaeb8152399ceb/pyhibp-3.1.0.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "d731ed1dda4365ebeecc3e2cfeae1e85", "sha256": "620e6feb4db7a3278c8d7436b2535d636899d4e08dcdc4e0a5bc81d5c1406282" }, "downloads": -1, "filename": "pyhibp-4.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d731ed1dda4365ebeecc3e2cfeae1e85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20592, "upload_time": "2019-08-11T04:28:20", "url": "https://files.pythonhosted.org/packages/17/c9/7335638a3a7866a868ee95a7e8ab88e49034665f1553f215eab1ad8a6270/pyhibp-4.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03db62e90d3867b76cc179db6fa1bccf", "sha256": "32f6ce30822b56659ca63f5ccffe2ab57195aedf7c03c20b6effd8e8828d6a26" }, "downloads": -1, "filename": "pyhibp-4.0.0.tar.gz", "has_sig": false, "md5_digest": "03db62e90d3867b76cc179db6fa1bccf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30707, "upload_time": "2019-08-11T04:28:22", "url": "https://files.pythonhosted.org/packages/ed/87/5eecb68da81fadb8c1227db9f9c0eb9978be8a80051639be0dba2a9f7d3f/pyhibp-4.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d731ed1dda4365ebeecc3e2cfeae1e85", "sha256": "620e6feb4db7a3278c8d7436b2535d636899d4e08dcdc4e0a5bc81d5c1406282" }, "downloads": -1, "filename": "pyhibp-4.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d731ed1dda4365ebeecc3e2cfeae1e85", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20592, "upload_time": "2019-08-11T04:28:20", "url": "https://files.pythonhosted.org/packages/17/c9/7335638a3a7866a868ee95a7e8ab88e49034665f1553f215eab1ad8a6270/pyhibp-4.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "03db62e90d3867b76cc179db6fa1bccf", "sha256": "32f6ce30822b56659ca63f5ccffe2ab57195aedf7c03c20b6effd8e8828d6a26" }, "downloads": -1, "filename": "pyhibp-4.0.0.tar.gz", "has_sig": false, "md5_digest": "03db62e90d3867b76cc179db6fa1bccf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30707, "upload_time": "2019-08-11T04:28:22", "url": "https://files.pythonhosted.org/packages/ed/87/5eecb68da81fadb8c1227db9f9c0eb9978be8a80051639be0dba2a9f7d3f/pyhibp-4.0.0.tar.gz" } ] }