{ "info": { "author": "Zachary Voase", "author_email": "z@zacharyvoase.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: Public Domain", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Security", "Topic :: Utilities" ], "description": "humanhash\n=========\n\nhumanhash provides human-readable representations of digests.\n\n.. image:: https://img.shields.io/travis/blag/humanhash.svg\n :target: https://travis-ci.org/blag/humanhash\n\n.. image:: https://img.shields.io/coveralls/blag/humanhash.svg\n :target: https://coveralls.io/github/blag/humanhash\n\n.. image:: https://img.shields.io/pypi/v/humanhash3.svg\n :target: https://pypi.python.org/pypi/humanhash3\n\n.. image:: https://img.shields.io/pypi/l/humanhash3.svg\n :target: https://github.com/blag/humanhash/blob/master/UNLICENSE\n\n.. image:: https://img.shields.io/pypi/pyversions/humanhash3.svg\n :target: https://github.com/blag/humanhash/blob/master/.travis.yml\n\nExample\n-------\n\n.. code-block:: python\n\n >>> import humanhash\n\n >>> digest = '7528880a986c40e78c38115e640da2a1'\n >>> humanhash.humanize(digest)\n 'three-georgia-xray-jig'\n >>> humanhash.humanize(digest, words=6)\n 'high-mango-white-oregon-purple-charlie'\n\n >>> humanhash.uuid()\n ('potato-oranges-william-friend', '9d2278759ae24698b1345525bd53358b')\n\nCaveats\n-------\n\nDon\u2019t store the humanhash output, as its statistical uniqueness is only\naround 1 in 4.3 billion. Its intended use is as a human-readable (and,\nmost importantly, **memorable**) representation of a longer digest,\nunique enough for display in a user interface, where a user may need to\nremember or verbally communicate the identity of a hash, without having\nto remember a 40-character hexadecimal sequence. Nevertheless, you\nshould keep original digests around, then pass them through\n``humanize()`` only as you\u2019re displaying them.\n\nHow It Works\n------------\n\nThe procedure for generating a humanhash involves compressing the input\nto a fixed length (default: 4 bytes), then mapping each of these bytes\nto a word in a pre-defined wordlist (a default wordlist is supplied with\nthe library). This algorithm is consistent, so the same input, given the\nsame wordlist, will always give the same output. You can also use your\nown wordlist, and specify a different number of words for output.\n\nInspiration\n-----------\n\n- `Chroma-Hash`_ - A human-viewable representation of a hash (albeit not\n one that can be output on a terminal, or shouted down a hallway).\n- `The NATO Phonetic Alphabet`_ - A great example of the trade-off\n between clarity of human communication and byte-wise efficiency of\n representation.\n\n.. _Chroma-Hash: http://mattt.github.com/Chroma-Hash/\n.. _The NATO Phonetic Alphabet: http://en.wikipedia.org/wiki/NATO_phonetic_alphabet", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/blag/humanhash", "keywords": "", "license": "Public Domain", "maintainer": "", "maintainer_email": "", "name": "humanhash3", "package_url": "https://pypi.org/project/humanhash3/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/humanhash3/", "project_urls": { "Homepage": "https://github.com/blag/humanhash" }, "release_url": "https://pypi.org/project/humanhash3/0.0.6/", "requires_dist": null, "requires_python": "", "summary": "Human-readable representations of digests.", "version": "0.0.6" }, "last_serial": 2866047, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "60bc31457025623f9817a62f8a1f25d3", "sha256": "16a3debb8df5c7a679f05512b8bef897fbb041f989170bb9131009ed82f9c68a" }, "downloads": -1, "filename": "humanhash3-0.0.3.tar.gz", "has_sig": false, "md5_digest": "60bc31457025623f9817a62f8a1f25d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3722, "upload_time": "2015-07-07T18:41:21", "url": "https://files.pythonhosted.org/packages/6f/b3/0a0e3da7679d31a6265b3567cfda69cd1e31edc30feaa92626ecbbc790cf/humanhash3-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7cf3fe1b7ef5c2d481869bad5fa51baa", "sha256": "9890e7a8cb9ed6d03153efcdda6a44f92785aa6bf898a2c3675982de66aa5d10" }, "downloads": -1, "filename": "humanhash3-0.0.4.tar.gz", "has_sig": false, "md5_digest": "7cf3fe1b7ef5c2d481869bad5fa51baa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3721, "upload_time": "2015-07-07T19:09:04", "url": "https://files.pythonhosted.org/packages/d4/6b/8d56a041e92a06cbb4ec8deae82826a1f427d189ed4a97daa26ec218f9c6/humanhash3-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "b4e18bda2866cd22b9ccc8821e0cdc4e", "sha256": "d7d1092af5c52cd7e7811e41b72a400eedc9a25c8f809e818d9e4f29ac787a5f" }, "downloads": -1, "filename": "humanhash3-0.0.5.tar.gz", "has_sig": true, "md5_digest": "b4e18bda2866cd22b9ccc8821e0cdc4e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5377, "upload_time": "2017-04-11T20:46:15", "url": "https://files.pythonhosted.org/packages/4d/e8/fe164cbeea6d4c0351e1d8c1d46217a1827e14834fd04024a65916bc7853/humanhash3-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "c892640cca499ba5a83cfe152d295b9d", "sha256": "89ae15f6034bdb07e53ac2b2e246cc7131940766d2b2b70b7398dd27c640b1ab" }, "downloads": -1, "filename": "humanhash3-0.0.6.tar.gz", "has_sig": true, "md5_digest": "c892640cca499ba5a83cfe152d295b9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5401, "upload_time": "2017-05-11T03:15:59", "url": "https://files.pythonhosted.org/packages/01/06/733ffbb45b78c34eba21d72e71a67f44af6efcdfb2e31ccaa837eb5144be/humanhash3-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c892640cca499ba5a83cfe152d295b9d", "sha256": "89ae15f6034bdb07e53ac2b2e246cc7131940766d2b2b70b7398dd27c640b1ab" }, "downloads": -1, "filename": "humanhash3-0.0.6.tar.gz", "has_sig": true, "md5_digest": "c892640cca499ba5a83cfe152d295b9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5401, "upload_time": "2017-05-11T03:15:59", "url": "https://files.pythonhosted.org/packages/01/06/733ffbb45b78c34eba21d72e71a67f44af6efcdfb2e31ccaa837eb5144be/humanhash3-0.0.6.tar.gz" } ] }