{ "info": { "author": "Evan Pratten", "author_email": "ewpratten@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# shift ![Tests](https://github.com/ewpratten/shift/workflows/Python%20package/badge.svg) ![Installation](https://github.com/ewpratten/shift/workflows/PIP%20Installation/badge.svg)\nNot an encryption tool\n\nShift was designed to store non-critical text data in such a way that only keyholders could reconstruct a useful message. Following the cryptography community's rule of \"Never roll your own encryption\", I am specifically not calling this an encryption tool. \nI have found that through some basic testing, with a reasonable key, breaking this encoding is not easy for the average teenage 1337 haxxor, but I cannot say anything for it's durability against an experienced code breaker. If you find a way to break this, open up an issue, or contact me via email (any pull requests that can strengthen the tool are welcome too).\n\nThis tool is still under development, and may not be backwards compatible with itself in the near future. \n\n## Installation\nTo install this tool and library, use PIP:\n```sh\n# Install shift\npip3 install shift-tool\n\n# Run shift\nshift2 -h\n```\n\nNOTE: the executable is named `shift2` not `shift`.\n\n## Usage\n\n### Commandline\nShift's commandline tool has two modes:\n```sh\n# Encode\nshift2 /path/to/input/file your_key_here > output.shift\n\n# Decode\nshift2 -d /path/to/encoded/file your_key_here > output.txt\n```\n\n### Library\nYou can also integrate shift2 into your own program with the library that is automatically installed with the commandline tool.\n\n```python\nimport shift2.shcrypt as s2c\n\n# Inputs\nmy_key = \"hello_shift\"\nmy_message = \"I'm shifty\"\n\n# Generate shifted key\nkey = s2c.key2shifts(my_key)\n\n# Encode the message\ndata = s2c.encode(my_message, key)\n\n# Print out the encoded message\nprint(data)\n\n# To decode, just use s2c.decode instead of s2c.encode\n```\n\n## Speed\nBy using Python's `cProfile` tool, we can see the time required to encode and decode `example.txt`. This file contains 50 paragraphs generated by [lipsum.com](https://www.lipsum.com), using the key `ewpratten`:\n```\nEncoding:\n 117661 function calls (117578 primitive calls) in 0.065 seconds\nDecoding:\n 151991 function calls (151904 primitive calls) in 0.092 seconds\n```\n\nTo run your own speed tests, use the `time.sh` script.\n\n## Querks\nThe first interesting thing about shift, is that the key can be randomly modified during encoding. This means that the message and key could actually encode eachother (this was done in my first implementation but produced files >1GB from the word \"hello\")\n\nBinary data must be b64 encoded before being passed through the encoder due to python safety checking unicode data.\n\n## Development\n### Deploying to PIP\nTo deploy shift to PIP, use:\n```\npip3 uninstall shift-tool\n./deploy.sh\npip3 install --no-cache-dir shift-tool\n```\n\n## Running locally\nThis script must be run with:\n```sh\npython3 -m shift2\n```\nNOT\n```sh\npython3 shift2\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Ewpratten/shift", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "shift-tool", "package_url": "https://pypi.org/project/shift-tool/", "platform": "", "project_url": "https://pypi.org/project/shift-tool/", "project_urls": { "Homepage": "https://github.com/Ewpratten/shift" }, "release_url": "https://pypi.org/project/shift-tool/3.1.0/", "requires_dist": null, "requires_python": "", "summary": "Not an encryption tool", "version": "3.1.0" }, "last_serial": 5724902, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "21c067bd781a143316b9c50d8e22ddda", "sha256": "c59371838dc64a9e30abe6609b0a019bb39ed216956a259ea75780e9fb7e61d5" }, "downloads": -1, "filename": "shift-tool-1.0.tar.gz", "has_sig": false, "md5_digest": "21c067bd781a143316b9c50d8e22ddda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1853, "upload_time": "2019-08-23T17:23:52", "url": "https://files.pythonhosted.org/packages/7c/3a/e6de77960b17568dabacabea828dc70b8bbb92a130af09316bd2759a8567/shift-tool-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "fd950bf5135a324564c13cda4a4ff91e", "sha256": "9082f3b6b439e003d3d74d75c3efe88ae7fafa0c99def344693db41812668d15" }, "downloads": -1, "filename": "shift-tool-1.1.tar.gz", "has_sig": false, "md5_digest": "fd950bf5135a324564c13cda4a4ff91e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1846, "upload_time": "2019-08-23T17:27:41", "url": "https://files.pythonhosted.org/packages/66/a8/e2a28ad8aa00556435540ecad388713b6377a70e77ff1ad2e566c57859a9/shift-tool-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "779a7bd887945fb107f5c99d4ec361ca", "sha256": "d53b6043bbb829e1df4e0aeb492e931fcd66778a047ab766ae7c5b786072dd44" }, "downloads": -1, "filename": "shift-tool-1.2.tar.gz", "has_sig": false, "md5_digest": "779a7bd887945fb107f5c99d4ec361ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1846, "upload_time": "2019-08-23T17:33:21", "url": "https://files.pythonhosted.org/packages/8c/19/7e813ffbadb534189fb805ffb3360dbcdc3b5671b0e4273271fb7941fffb/shift-tool-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "203382fe4e04c6a96b384050710a8632", "sha256": "97c3cda5a08f2ee5dd44970a2a36f1d15b900089506905829714b34d536bef41" }, "downloads": -1, "filename": "shift-tool-1.3.tar.gz", "has_sig": false, "md5_digest": "203382fe4e04c6a96b384050710a8632", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2415, "upload_time": "2019-08-23T18:10:52", "url": "https://files.pythonhosted.org/packages/be/36/0f28e9ad987a9145cdc63bec650fcad3f68f2b6de62b670c14d8021ed4b0/shift-tool-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "57da6cc9d3d578f9fc1b307dcf00c259", "sha256": "4275007d4ac131b3b6fb85354785866f33b2be0c8b0e43e7e95b20bae3fa92f9" }, "downloads": -1, "filename": "shift-tool-1.4.tar.gz", "has_sig": false, "md5_digest": "57da6cc9d3d578f9fc1b307dcf00c259", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2415, "upload_time": "2019-08-23T21:10:54", "url": "https://files.pythonhosted.org/packages/fa/28/6ed22e80e26455586fa7140b80a515cfcb098992735de91fdb86beb9ca5a/shift-tool-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "f13439b57d623e11b67eec7ff5e97e37", "sha256": "d18744e926eef5f16356b15314c2b1970108e4d34e767981446a522f7dac2aef" }, "downloads": -1, "filename": "shift-tool-1.5.tar.gz", "has_sig": false, "md5_digest": "f13439b57d623e11b67eec7ff5e97e37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2417, "upload_time": "2019-08-23T21:15:00", "url": "https://files.pythonhosted.org/packages/bd/b6/602357006865d14ccac65317f03e4f77a6e00fd624c70029297bff5b5b67/shift-tool-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "1d7783d1667e60a8bed3166485481779", "sha256": "284fffbc2416ad582244db0db3b273c402433543b7288770ceb254b525ce6d0e" }, "downloads": -1, "filename": "shift-tool-1.6.tar.gz", "has_sig": false, "md5_digest": "1d7783d1667e60a8bed3166485481779", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2415, "upload_time": "2019-08-23T21:20:31", "url": "https://files.pythonhosted.org/packages/32/3a/dcc2ecf019c18bda5555f24845439e68467404a406a77e760ffb5556f838/shift-tool-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "4fca20bcab9ec9c2ac7b4e8d78b96324", "sha256": "30d690130a027724e51db2ecdc3056ef4cb57bb54c7ac02bfcb130c97fa34e2a" }, "downloads": -1, "filename": "shift-tool-1.7.tar.gz", "has_sig": false, "md5_digest": "4fca20bcab9ec9c2ac7b4e8d78b96324", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1383, "upload_time": "2019-08-23T21:23:36", "url": "https://files.pythonhosted.org/packages/8f/10/56c32ffaaa886ad82079153a46ce2fc97763f7b3d370cde6b3a90571fc0a/shift-tool-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "194cd9747bab8391c7c91272d34701e2", "sha256": "616476f84c5c86a5c26e2647b043381783ebb1cd9d245b1df7dc3148b4b63d78" }, "downloads": -1, "filename": "shift-tool-1.8.tar.gz", "has_sig": false, "md5_digest": "194cd9747bab8391c7c91272d34701e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2456, "upload_time": "2019-08-23T21:30:46", "url": "https://files.pythonhosted.org/packages/80/e5/faa06d873abd0f64cff1311f0c6ff40ad9a53ec3c5dc65161a933d254c57/shift-tool-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "c7104498f5993eb40081f4db61792c03", "sha256": "1fe8cb82a0308813619188fee0517bc99c5756c9402b087bde0b660f8227cd94" }, "downloads": -1, "filename": "shift-tool-1.9.tar.gz", "has_sig": false, "md5_digest": "c7104498f5993eb40081f4db61792c03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2515, "upload_time": "2019-08-23T21:35:22", "url": "https://files.pythonhosted.org/packages/17/6c/11ff8f358537783f1f0b2795f366556459b213514edcee952e448a17d422/shift-tool-1.9.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "033443a35293417c08fc1daf307d8393", "sha256": "da02573cfc99314467538ace0497ee8981cd4300a1c5050b0a8d1cac80b84798" }, "downloads": -1, "filename": "shift-tool-2.0.tar.gz", "has_sig": false, "md5_digest": "033443a35293417c08fc1daf307d8393", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2618, "upload_time": "2019-08-23T21:39:35", "url": "https://files.pythonhosted.org/packages/6f/97/3d512fe1fb7a1775daec4cc9ea7974cfd8c73efcb33550790879d006ad64/shift-tool-2.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "6443af55599f550885ff9b934aed1127", "sha256": "6c9aac6ab5daa5c2b7fa20f9a650d8eccf0ce68179ea231622d3c418e2d62a62" }, "downloads": -1, "filename": "shift-tool-2.0.1.tar.gz", "has_sig": false, "md5_digest": "6443af55599f550885ff9b934aed1127", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3543, "upload_time": "2019-08-23T23:33:33", "url": "https://files.pythonhosted.org/packages/50/79/82203ee81d25de8466ed14441d7cb250479b821a3f1444c86afd74d6f730/shift-tool-2.0.1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "03a2895184503ff09307a3d408d18af6", "sha256": "04d83a3f2a80682ff8d089322551a2163f23f9969a0385b1bafcf0ec5a2f60a3" }, "downloads": -1, "filename": "shift-tool-3.0.0.tar.gz", "has_sig": false, "md5_digest": "03a2895184503ff09307a3d408d18af6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4373, "upload_time": "2019-08-24T16:44:58", "url": "https://files.pythonhosted.org/packages/65/58/03a84ea7fb999c59ba7867052bdebdda1d6c1968b7cac88d2b74945fa161/shift-tool-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "bbd2c6949de29e9aa8d091240c47f420", "sha256": "6d94cae8cc98febbbc2445f56ef05ec928857ff522846f4b035fc638dcfe0d57" }, "downloads": -1, "filename": "shift-tool-3.0.1.tar.gz", "has_sig": false, "md5_digest": "bbd2c6949de29e9aa8d091240c47f420", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4366, "upload_time": "2019-08-24T16:52:13", "url": "https://files.pythonhosted.org/packages/56/02/20ef32467997f11870cbd5636247777d4622741e2031a6013b679d794f89/shift-tool-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "8367bbdb6e3e92829f4c71f92ab78f7c", "sha256": "01ab899f98b54557f6ac6c14a2b29201d2698e9ffbf0a1c3838954d5b05cf104" }, "downloads": -1, "filename": "shift-tool-3.0.2.tar.gz", "has_sig": false, "md5_digest": "8367bbdb6e3e92829f4c71f92ab78f7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4366, "upload_time": "2019-08-24T17:01:48", "url": "https://files.pythonhosted.org/packages/c4/94/48670aad29dcf1448b15eedf6641e1f1378b4116a44d7de423c576d31c7f/shift-tool-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "7a1404981fea5dc7de7eaed4ad225046", "sha256": "84caa9bf995b36f820919045878cb7b7bd41c9fb911e2bfc5fae81bc2535db7b" }, "downloads": -1, "filename": "shift-tool-3.0.3.tar.gz", "has_sig": false, "md5_digest": "7a1404981fea5dc7de7eaed4ad225046", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4415, "upload_time": "2019-08-24T17:11:00", "url": "https://files.pythonhosted.org/packages/92/b5/e53f76c539c3cc200c03f6676845400b6c53b44094729b3ca22922ecb042/shift-tool-3.0.3.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "afd0b7d74609cca2281be03d0e60175b", "sha256": "34efacc3f43c88133cdc35825479a9f8899e55b174b121ee4da64718cd8b57ee" }, "downloads": -1, "filename": "shift-tool-3.1.0.tar.gz", "has_sig": false, "md5_digest": "afd0b7d74609cca2281be03d0e60175b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4473, "upload_time": "2019-08-24T17:49:16", "url": "https://files.pythonhosted.org/packages/3e/51/4dd7e35863b21140b7f13772860e461085dc3b0391dbdb8d1957a4435741/shift-tool-3.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "afd0b7d74609cca2281be03d0e60175b", "sha256": "34efacc3f43c88133cdc35825479a9f8899e55b174b121ee4da64718cd8b57ee" }, "downloads": -1, "filename": "shift-tool-3.1.0.tar.gz", "has_sig": false, "md5_digest": "afd0b7d74609cca2281be03d0e60175b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4473, "upload_time": "2019-08-24T17:49:16", "url": "https://files.pythonhosted.org/packages/3e/51/4dd7e35863b21140b7f13772860e461085dc3b0391dbdb8d1957a4435741/shift-tool-3.1.0.tar.gz" } ] }