{ "info": { "author": "Hsiaoming Yang", "author_email": "me@lepture.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved", "License :: OSI Approved :: BSD License", "Operating System :: MacOS", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Safe\n====\n\nIs your password safe? **Safe** will check the password strength for you.\n\n.. image:: https://travis-ci.org/lepture/safe.png?branch=master\n :target: https://travis-ci.org/lepture/safe\n\nHow it works\n------------\n\n**Safe** will check if the password has a simple pattern, for instance:\n\n1. password is in the order on your QWERT keyboards.\n2. password is simple alphabet step by step, such as: abcd, 1357\n\n**Safe** will check if the password is a common used password.\nMany thanks to Mark Burnett for the great work on `10000 Top Passwords `_.\n\n**Safe** will check if the password has mixed number, alphabet, marks.\n\nInstallation\n------------\n\nInstall Safe with pip::\n\n $ pip install Safe\n\nIf pip is not available, try easy_install::\n\n $ easy_install Safe\n\nUsage\n-----\n\nIt's very simple to check the strength of a password::\n\n >>> import safe\n >>> safe.check(1)\n terrible\n >>> safe.check('password')\n simpile\n >>> safe.check('is.safe')\n medium\n >>> safe.check('x*V-92Ba')\n strong\n >>> strength = safe.check('x*V-92Ba')\n >>> bool(strength)\n True\n >>> repr(strength)\n 'strong'\n >>> str(strength)\n 'password is perfect'\n >>> strength.valid\n True\n >>> strength.strength\n 'strong'\n >>> strength.message\n 'good password'\n\n\nEnviron Variables\n-----------------\n\n1. **PYTHON_SAFE_WORDS_CACHE**: cache words in this file, default is a tempfile\n2. **PYTHON_SAFE_WORDS_FILE**: words vocabulary file, default is the 10k top passwords\n\nOther Implementations\n---------------------\n\n1. **JavaScript**: `lepture/safe.js `_", "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/lepture/safe", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "Safe", "package_url": "https://pypi.org/project/Safe/", "platform": "any", "project_url": "https://pypi.org/project/Safe/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/lepture/safe" }, "release_url": "https://pypi.org/project/Safe/0.4/", "requires_dist": null, "requires_python": null, "summary": "Is your password safe?", "version": "0.4" }, "last_serial": 1806237, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "f4abf3ce478fc00d5cab7a3a8a8421a9", "sha256": "47a6e1ed2b82af56a70b2db3ab7b224bcd8e530f95ebad6556a1d22f7979475c" }, "downloads": -1, "filename": "Safe-0.1.tar.gz", "has_sig": false, "md5_digest": "f4abf3ce478fc00d5cab7a3a8a8421a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4441, "upload_time": "2014-07-22T12:16:17", "url": "https://files.pythonhosted.org/packages/8a/de/f345d025099bacefb07a58f8630381ece17bc327f154d467b0955edc2e18/Safe-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "11015ee41d63d6e61f90d523990a2503", "sha256": "91e952351b61fbb9de875376b3f687021683083c2dde424080b760f92de97c23" }, "downloads": -1, "filename": "Safe-0.2.tar.gz", "has_sig": false, "md5_digest": "11015ee41d63d6e61f90d523990a2503", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56616, "upload_time": "2014-07-24T03:47:39", "url": "https://files.pythonhosted.org/packages/35/61/6d7bc685e662f3f2694a21d061bfd0912962fbb95411c229a7b8f614e240/Safe-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "a25aec5f9413aa0f9d6d13b1d22c36f3", "sha256": "55e0ca946518a3de4c085d6d4055ae81f952ca3d55fff6d76ce8c960cd43a497" }, "downloads": -1, "filename": "Safe-0.3.tar.gz", "has_sig": false, "md5_digest": "a25aec5f9413aa0f9d6d13b1d22c36f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56649, "upload_time": "2014-07-28T07:55:19", "url": "https://files.pythonhosted.org/packages/6a/49/ced6f9e30fe8969693a46379a4efccaa778f4701f063ea81b128fc02d261/Safe-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "66ec4c9459859f2af767d821cd6a7cf6", "sha256": "4e7315087d80fdbbc781362a656376cfa273c5c68a8abc0412e159bf541fcbda" }, "downloads": -1, "filename": "Safe-0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "66ec4c9459859f2af767d821cd6a7cf6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 56037, "upload_time": "2015-11-08T05:58:12", "url": "https://files.pythonhosted.org/packages/6e/19/28e04729954cd3c401ad09aabf14bf896a9e5b112f7d56bc7ea2617a7b36/Safe-0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "670ef3588b98f878dd1b38b13d8f677d", "sha256": "a2fdac9fe8a9dcf02b438201d6ce0b7be78f85dc6492d03edfb89be2adf489de" }, "downloads": -1, "filename": "Safe-0.4.tar.gz", "has_sig": false, "md5_digest": "670ef3588b98f878dd1b38b13d8f677d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56803, "upload_time": "2015-11-08T05:58:21", "url": "https://files.pythonhosted.org/packages/d2/3d/ea0fa7a262431f4b94845df59637bbb4ccac9d03a696ca1d894631da8614/Safe-0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "66ec4c9459859f2af767d821cd6a7cf6", "sha256": "4e7315087d80fdbbc781362a656376cfa273c5c68a8abc0412e159bf541fcbda" }, "downloads": -1, "filename": "Safe-0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "66ec4c9459859f2af767d821cd6a7cf6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 56037, "upload_time": "2015-11-08T05:58:12", "url": "https://files.pythonhosted.org/packages/6e/19/28e04729954cd3c401ad09aabf14bf896a9e5b112f7d56bc7ea2617a7b36/Safe-0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "670ef3588b98f878dd1b38b13d8f677d", "sha256": "a2fdac9fe8a9dcf02b438201d6ce0b7be78f85dc6492d03edfb89be2adf489de" }, "downloads": -1, "filename": "Safe-0.4.tar.gz", "has_sig": false, "md5_digest": "670ef3588b98f878dd1b38b13d8f677d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56803, "upload_time": "2015-11-08T05:58:21", "url": "https://files.pythonhosted.org/packages/d2/3d/ea0fa7a262431f4b94845df59637bbb4ccac9d03a696ca1d894631da8614/Safe-0.4.tar.gz" } ] }