{
"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"
}
]
}