{ "info": { "author": "David Roundy", "author_email": "daveroundy@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: BSD License" ], "description": "Visual Hash\n===========\n\nA visual hash is an image that is generated from a large string, just\nas an ordinary cryptographic hash is usually represented as a\nhexadecimal string. The advantage of a visual hash is that it is\neasier for humans to remember and compare.\n\nWhat makes a hash good enough?\n------------------------------\n\nA good visual hash should have the following properties:\n\n1. A high information content, as measured by its Shannon entropy.\n This results in a hash that has a low chance of collision. This\n provides pre-image resistance, i.e. it makes it difficult to create\n a second input that results in a hash identical to a given hash.\n\n2. A high minimum self-information. i.e. the lowest self-information\n value should be as high as possible. This property implies the\n former property, but is itself distinct. The lowest\n self-information output is most prone to collisions. Testing for\n this property is challenging, more challenging than the mean\n information content discussed previously.\n\n A second-best for this property would be to be able to identify\n hashes that have low self-information. Of course, if we can\n reliably identify them, we could (in principle) eliminate them\n entirely by checking for a low self-information during the hashing\n process, and trying again when this is encountered.\n\n3. Second pre-image resistance, which means that knowing the hash\n input, we should not be able to produce a similar (or identical)\n hash. We achieve this by using a cryptographic hash as input to\n our visual hashes, which ensures the second pre-image resistance is\n identical to the first pre-image resistance.\n\n In order to generate testable visual hashes, we actually aim for\n raw algorithms that *lack* second pre-image resistance (which we\n then add on via the cryptographic hash). This allows us to more\n readily explore \"similar\" images in order to estimate the\n information content in the visual hash, and thus its first\n pre-image resistance.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/droundy/visual-hash", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "visual-hash", "package_url": "https://pypi.org/project/visual-hash/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/visual-hash/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/droundy/visual-hash" }, "release_url": "https://pypi.org/project/visual-hash/0.0.0.16/", "requires_dist": null, "requires_python": null, "summary": "A package to generate visual hashes.", "version": "0.0.0.16" }, "last_serial": 1287077, "releases": { "0.0.0": [ { "comment_text": "built for Linux-3.2.0-4-amd64-x86_64-with-glibc2.7", "digests": { "md5": "79fcd8de4a51b87b8b9d3d0e7e40d39c", "sha256": "ca7884307a135634c76248355fd17eeb721d44888ef42b9175aa050716299f2f" }, "downloads": -1, "filename": "visual-hash-0.0.0.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "79fcd8de4a51b87b8b9d3d0e7e40d39c", "packagetype": "bdist_dumb", "python_version": "2.7", "requires_python": null, "size": 193610, "upload_time": "2014-05-30T13:52:12", "url": "https://files.pythonhosted.org/packages/a0/3d/3774537a86b13b9e79e3d8c8bc038d934bddd214799bb2c88d643d6b3423/visual-hash-0.0.0.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "5b7009fa4686468b0f7d9449265ea25f", "sha256": "f1283455254913eb046f387a4735bfeaa4c9d956928e9112d553d61b75c81a9f" }, "downloads": -1, "filename": "visual-hash-0.0.0.tar.gz", "has_sig": false, "md5_digest": "5b7009fa4686468b0f7d9449265ea25f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75500, "upload_time": "2014-05-30T13:52:07", "url": "https://files.pythonhosted.org/packages/17/79/13f1588655cc551a72aaab6a827a21e25f16520f1a673d988c2d4790bb62/visual-hash-0.0.0.tar.gz" } ], "0.0.0.1": [ { "comment_text": "built for Linux-3.2.0-4-amd64-x86_64-with-glibc2.7", "digests": { "md5": "724503b4133ace016baea029a8d14402", "sha256": "b5ea64e0768e699f15f82d25ec7117acb3d9ffabee4c704701412b91303c85c3" }, "downloads": -1, "filename": "visual-hash-0.0.0.1.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "724503b4133ace016baea029a8d14402", "packagetype": "bdist_dumb", "python_version": "2.7", "requires_python": null, "size": 193615, "upload_time": "2014-05-30T14:14:47", "url": "https://files.pythonhosted.org/packages/79/63/9bc895dfb97bea2d1573d3023834aa126b4a1f7c44d5abdc7bffe345a69e/visual-hash-0.0.0.1.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "f078bbfc954efe450645016e9871b0d8", "sha256": "fbf1b5460f872be2852b8cf04a1220706df646848e799c33522cf550cd1fa031" }, "downloads": -1, "filename": "visual-hash-0.0.0.1.tar.gz", "has_sig": false, "md5_digest": "f078bbfc954efe450645016e9871b0d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75506, "upload_time": "2014-05-30T14:14:42", "url": "https://files.pythonhosted.org/packages/23/99/6ee02489df4135118d1a270edd36a21036d296d78f184f03c933fe76799b/visual-hash-0.0.0.1.tar.gz" } ], "0.0.0.10": [ { "comment_text": "", "digests": { "md5": "b8ede4ff63d7f5e2a33327ea368e9b58", "sha256": "97613b557df6b744a32ae8ff222991afa41efd039b0cc4c03e53d8de684880fb" }, "downloads": -1, "filename": "visual-hash-0.0.0.10.tar.gz", "has_sig": false, "md5_digest": "b8ede4ff63d7f5e2a33327ea368e9b58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81136, "upload_time": "2014-06-07T13:01:34", "url": "https://files.pythonhosted.org/packages/ef/86/2f3df77de7fb4421bb1b00f91eeef0fb0a39b2b98c7c1c4bc19ec6349c1f/visual-hash-0.0.0.10.tar.gz" } ], "0.0.0.11": [ { "comment_text": "", "digests": { "md5": "77ba6e19364ef193501b2e02f8225336", "sha256": "5e55abfb16463d5ba51c866b2b91af277781b68062887fcf41224e042ce08c91" }, "downloads": -1, "filename": "visual-hash-0.0.0.11.tar.gz", "has_sig": false, "md5_digest": "77ba6e19364ef193501b2e02f8225336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81169, "upload_time": "2014-06-09T13:48:43", "url": "https://files.pythonhosted.org/packages/7c/93/78996ea70806fe0ab3bd5b9345a86aea2f33ea1ccfa873e1f66b50f001f0/visual-hash-0.0.0.11.tar.gz" } ], "0.0.0.12": [ { "comment_text": "", "digests": { "md5": "8e335ac97d8207e646e0454540d594bc", "sha256": "bf58f3d646c7704f93f0826413cbce8bf5cba5f0a00d5582c00a59f3bf98ff73" }, "downloads": -1, "filename": "visual-hash-0.0.0.12.tar.gz", "has_sig": false, "md5_digest": "8e335ac97d8207e646e0454540d594bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81176, "upload_time": "2014-06-09T13:49:12", "url": "https://files.pythonhosted.org/packages/4d/09/7ae90f8e3ce1e26a41c7164421c53b4eaf14b3050bfcc68685dae6ba697d/visual-hash-0.0.0.12.tar.gz" } ], "0.0.0.13": [ { "comment_text": "", "digests": { "md5": "44c2b745b7e1cc0fd9ab931e7002f6fd", "sha256": "1a3b747aa43d653a1ee525c4c579e63a322da57d0245bc02ef5b66563f61a039" }, "downloads": -1, "filename": "visual-hash-0.0.0.13.tar.gz", "has_sig": false, "md5_digest": "44c2b745b7e1cc0fd9ab931e7002f6fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80907, "upload_time": "2014-06-10T12:18:42", "url": "https://files.pythonhosted.org/packages/c2/ff/6054dcb3bb5bccbf3febac60d0af361233d666b3ceaaaa7528dfa8aee113/visual-hash-0.0.0.13.tar.gz" } ], "0.0.0.14": [ { "comment_text": "", "digests": { "md5": "fd76fdfe4d11908800d10708a8a26259", "sha256": "fc73c3255a45692c28a6d65529bba7412525d320b7ce50d429d6c0da1e678a95" }, "downloads": -1, "filename": "visual-hash-0.0.0.14.tar.gz", "has_sig": false, "md5_digest": "fd76fdfe4d11908800d10708a8a26259", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13435, "upload_time": "2014-06-10T13:05:56", "url": "https://files.pythonhosted.org/packages/cb/31/89cebcc0593ecc7758b79efac5a746931e3274778fde51caff8cbf98dcf9/visual-hash-0.0.0.14.tar.gz" } ], "0.0.0.15": [ { "comment_text": "", "digests": { "md5": "7e642f6860db710e9f91b2ed0c30c6cd", "sha256": "4df94882f74713c7e04885dd6d5a587b55a51cefc520dcbf75fd806b8c229a4a" }, "downloads": -1, "filename": "visual-hash-0.0.0.15.tar.gz", "has_sig": false, "md5_digest": "7e642f6860db710e9f91b2ed0c30c6cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13434, "upload_time": "2014-06-10T13:07:38", "url": "https://files.pythonhosted.org/packages/ac/d9/35a8fbc7d21843004d0bf0143026cc96226a6c67c266f15aeed33fd9c3fb/visual-hash-0.0.0.15.tar.gz" } ], "0.0.0.16": [ { "comment_text": "", "digests": { "md5": "6569c682ba897d992c8b8d08c93b7208", "sha256": "4ffda41da54eed63e996cf0f92f6d622b0b4d0fe3a8ef7e532e227170ff85738" }, "downloads": -1, "filename": "visual-hash-0.0.0.16.tar.gz", "has_sig": false, "md5_digest": "6569c682ba897d992c8b8d08c93b7208", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75795, "upload_time": "2014-10-29T13:47:59", "url": "https://files.pythonhosted.org/packages/33/77/e9aacdeca27641334a09003a75a35c03fda5d0c4698c1cc4ce1ebf66b44b/visual-hash-0.0.0.16.tar.gz" } ], "0.0.0.2": [ { "comment_text": "built for Linux-3.2.0-4-amd64-x86_64-with-glibc2.7", "digests": { "md5": "0559902e91443083a054e89dd9a3ce53", "sha256": "bd01c6bd4e23bb45844dbdf48b4c7b97d712205a64c13645321c56e317cdf4c8" }, "downloads": -1, "filename": "visual-hash-0.0.0.2.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "0559902e91443083a054e89dd9a3ce53", "packagetype": "bdist_dumb", "python_version": "2.7", "requires_python": null, "size": 193600, "upload_time": "2014-05-30T14:26:19", "url": "https://files.pythonhosted.org/packages/d0/59/36451866aba334052184508dc53f4f901a5edbcbc4205f59e55a555f9773/visual-hash-0.0.0.2.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "02d229c2014df3eec77d272bd0ffd149", "sha256": "9d35d3bba973b546cc35d1848421ed95b9f435cff3cc28656f8d1089ffd2b909" }, "downloads": -1, "filename": "visual-hash-0.0.0.2.tar.gz", "has_sig": false, "md5_digest": "02d229c2014df3eec77d272bd0ffd149", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75527, "upload_time": "2014-05-30T14:26:15", "url": "https://files.pythonhosted.org/packages/db/de/db5457b3f51b46e2a816f9809bad53eae0309a58d35958e0b9ac6e3a72be/visual-hash-0.0.0.2.tar.gz" } ], "0.0.0.3": [ { "comment_text": "built for Linux-3.2.0-4-amd64-x86_64-with-glibc2.7", "digests": { "md5": "ad4e66ef3754b872e259c8eac069b3b1", "sha256": "9a8bf3d6bcd70846b5f29c0d1f86c7b02ae7d6f66498ee8aa5603a02f50a9027" }, "downloads": -1, "filename": "visual-hash-0.0.0.3.linux-x86_64.tar.gz", "has_sig": false, "md5_digest": "ad4e66ef3754b872e259c8eac069b3b1", "packagetype": "bdist_dumb", "python_version": "2.7", "requires_python": null, "size": 193901, "upload_time": "2014-06-01T12:51:51", "url": "https://files.pythonhosted.org/packages/23/fc/8a7b077038bdcc33514bb2f8862bc7a4bb9e0d5f2872c9c7f6c0016c2f8c/visual-hash-0.0.0.3.linux-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "2237237726d88901d0f41f702a54b62c", "sha256": "54df07c65c8c982893cb1337f4de2e188e11d762780caa24668f401d7c499865" }, "downloads": -1, "filename": "visual-hash-0.0.0.3.tar.gz", "has_sig": false, "md5_digest": "2237237726d88901d0f41f702a54b62c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75648, "upload_time": "2014-06-01T12:51:46", "url": "https://files.pythonhosted.org/packages/e4/a9/88971e013b8f7bfd4133e1d4dc6b20b6d667344c10ddb9445f27ae36d972/visual-hash-0.0.0.3.tar.gz" } ], "0.0.0.4": [ { "comment_text": "", "digests": { "md5": "fe139edb5b5aab6f4ef5e911ef2775c7", "sha256": "57e100213f16cb55dfc3bc9bac554ada7547abf49b98626f8492f66c74837f42" }, "downloads": -1, "filename": "visual-hash-0.0.0.4.tar.gz", "has_sig": false, "md5_digest": "fe139edb5b5aab6f4ef5e911ef2775c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75647, "upload_time": "2014-06-01T12:55:27", "url": "https://files.pythonhosted.org/packages/fa/1c/b8f96f9c811c0b27005f7845974d77c9c1960f8a7d65be321fcfe3c53d63/visual-hash-0.0.0.4.tar.gz" } ], "0.0.0.5": [ { "comment_text": "", "digests": { "md5": "150cca5df2f301d5e6fa5c1403a841fe", "sha256": "4b607101ebe2ee0f599ee11aea740a6187b32f03ccbfe359ede4945160c2ce25" }, "downloads": -1, "filename": "visual-hash-0.0.0.5.tar.gz", "has_sig": false, "md5_digest": "150cca5df2f301d5e6fa5c1403a841fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75962, "upload_time": "2014-06-01T13:24:34", "url": "https://files.pythonhosted.org/packages/c6/c4/06db6d96ed719e8be3a25b471edd43565dd4846302a8e3a8aa35de068997/visual-hash-0.0.0.5.tar.gz" } ], "0.0.0.6": [ { "comment_text": "", "digests": { "md5": "3ed593d269608235666a43abbff3bc42", "sha256": "a6ba450a6c08418e9c95d2bae2600a712de84f68890a6a7e2434c58fbfcbddc6" }, "downloads": -1, "filename": "visual-hash-0.0.0.6.tar.gz", "has_sig": false, "md5_digest": "3ed593d269608235666a43abbff3bc42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75990, "upload_time": "2014-06-01T13:27:21", "url": "https://files.pythonhosted.org/packages/e8/de/9616fb97051afb41ec4aab3a056ecf9644ab4125723b9be4f3f5f3a5f4b8/visual-hash-0.0.0.6.tar.gz" } ], "0.0.0.7": [ { "comment_text": "", "digests": { "md5": "334b6b5df9ccc3171e4c0c53d573fd45", "sha256": "8b3173a7bbfed60d17c56e8c59cdd96ff6321ed0eee8199e0e4f37a2ba6c641c" }, "downloads": -1, "filename": "visual-hash-0.0.0.7.tar.gz", "has_sig": false, "md5_digest": "334b6b5df9ccc3171e4c0c53d573fd45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75979, "upload_time": "2014-06-01T13:35:22", "url": "https://files.pythonhosted.org/packages/95/e9/db3fd996ad7fd2070128d4dfae568c462e329de1f0a5f57cf816068e093d/visual-hash-0.0.0.7.tar.gz" } ], "0.0.0.8": [ { "comment_text": "", "digests": { "md5": "491aad03b0f2752463c0da366f9df2fe", "sha256": "f82d29c33933a8af2c7f66c74c5b43a95852366e8224e4d4c9de8a972f25090f" }, "downloads": -1, "filename": "visual-hash-0.0.0.8.tar.gz", "has_sig": false, "md5_digest": "491aad03b0f2752463c0da366f9df2fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76016, "upload_time": "2014-06-01T13:47:18", "url": "https://files.pythonhosted.org/packages/27/75/85b0e60b7808d282ce9166dfa37b91b5dc05c71ff25a2f388dfe40bee10a/visual-hash-0.0.0.8.tar.gz" } ], "0.0.0.9": [ { "comment_text": "", "digests": { "md5": "c3f2decd4dc9e72ce0dadf57b33d85d8", "sha256": "b5b301b90f433348670fd1898875af1986ef4caa0ed336c9e3c8b397f79dc72f" }, "downloads": -1, "filename": "visual-hash-0.0.0.9.tar.gz", "has_sig": false, "md5_digest": "c3f2decd4dc9e72ce0dadf57b33d85d8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76031, "upload_time": "2014-06-01T13:56:12", "url": "https://files.pythonhosted.org/packages/9d/11/ea21de725f1366ec3869fb3f49f5b7fbc6e2c14efd6df126ed78ef9d00d6/visual-hash-0.0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6569c682ba897d992c8b8d08c93b7208", "sha256": "4ffda41da54eed63e996cf0f92f6d622b0b4d0fe3a8ef7e532e227170ff85738" }, "downloads": -1, "filename": "visual-hash-0.0.0.16.tar.gz", "has_sig": false, "md5_digest": "6569c682ba897d992c8b8d08c93b7208", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75795, "upload_time": "2014-10-29T13:47:59", "url": "https://files.pythonhosted.org/packages/33/77/e9aacdeca27641334a09003a75a35c03fda5d0c4698c1cc4ce1ebf66b44b/visual-hash-0.0.0.16.tar.gz" } ] }