Name | litecrypt JSON |
Version |
0.2.7
JSON |
| download |
home_page | |
Summary | Simplifying encryption |
upload_time | 2023-12-29 02:43:14 |
maintainer | |
docs_url | None |
author | Ashref Gwader |
requires_python | >=3.8,<4.0 |
license | MIT |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
![alt text](docs/assets/widelogo1.png)
![workflow](https://github.com/ashgw/litecrypt/actions/workflows/deploy.yaml/badge.svg)
[![Static Badge](https://img.shields.io/badge/Docs-latest-%237e56c2)](https://ashgw.github.io/litecrypt)
[![Python Versions](https://img.shields.io/badge/Python-3.8%7C3.9%7C3.10%7C3.11%7C3.12-blue)](https://pypi.org/project/litecrypt/)
[![Static Badge](https://img.shields.io/badge/PyPI-latest-brightgreen)](https://pypi.org/project/litecrypt/)
## Overview
So I made this library for personal use to secure some of my personal files & hit the [connect](https://wtf-g-who-u-searching-for-champ.com) from time to time.
It provides support for both fast and highly computationally intensive encryption. Also, it includes a database integration system which facilitates the restoration of files to their original state if necessary, and a GUI is also included to obviate the need to write code.
<br>
The docs can be accessed **[here](https://ashgw.github.io/litecrypt)**, I made it so I don't forget wtf I was yapping about a couple of months ago, probably not so useful for visitors.
## Installation
```shell
pip install litecrypt
```
## Usage
```python
from litecrypt import CryptFile, gen_key
key = gen_key()
CryptFile('file_of_any.type', key).encrypt()
# the file is now called ==> 'file_of_any.type.crypt
```
The encryption process is **blazingly fast** by default, to make it computationally intensive
<details><summary>Do this</summary>
```python
from litecrypt import CryptFile, gen_key
key = gen_key()
CryptFile('anyfile.txt',
key=key,
intensive_compute=True,
iteration_rounds=10000
).encrypt()
```
> Running `intensive_compute` with no `iteration_rounds` sets the rounds to 50 (minimum) by default
To decrypt simply run:
```python
from litecrypt import CryptFile
key = 'THE_KEY_YOU_USED'
CryptFile('anyfile.txt.crypt',key=key).decrypt()
```
</details>
For messages:
```python
from litecrypt import Crypt, gen_key
key = gen_key()
encrypted = Crypt('any message', key).encrypt() # can also be a bytes message
print(encrypted) # Check the return value
```
### Details
<br>**Algorithm:** AES-256 CBC
<br>**Layout:**
````commandline
+-------------+ +--------+ +------------+ +-------------+ +-------------+ +------------------+
| HMAC | →| IV | →| Salt | →| Pepper | →| Iterations | →| KDF ID | →
+-------------+ +--------+ +------------+ +-------------+ +-------------+ +------------------+
+------------------+
| Ciphertext ...
+------------------+
````
AES and HMAC keys, each 32 bytes, are derived from the main key (`gen_key()`) using the chosen KDF with SHA256. Iterations range from 50 to 100,000 the higher they go the more time it takes to compute, that's 4 bytes. IV that's 16, Salt, and Pepper are also 16 byte random values, both mixed with the KDF. The ciphertext size varies, with the crypto process employing PKCS7 padding.
<h3>Supported Databases</h3>
Currently, supports MySQL, PostgresSQL and SQLite.
<br>Check the **[docs](https://ashgw.github.io/litecrypt)** for more info.
### GUI
![alt text](docs/assets/GUI.png)
<details><summary>Here's how it works</summary>
https://github.com/AshGw/litecrypt/assets/126174609/190b6ab8-3f8a-4656-9525-dbaf5e56db5e
</details>
## License
Litecrypt is open-source project & licensed under the [MIT License](https://github.com/AshGw/litecrypt/blob/main/LICENSE).
Raw data
{
"_id": null,
"home_page": "",
"name": "litecrypt",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Ashref Gwader",
"author_email": "AshrefGw@proton.me",
"download_url": "https://files.pythonhosted.org/packages/88/5a/eb44e477097f9ac8854d7653464f880b0a9f930d0fc74a30057403fb4d79/litecrypt-0.2.7.tar.gz",
"platform": null,
"description": "![alt text](docs/assets/widelogo1.png)\n![workflow](https://github.com/ashgw/litecrypt/actions/workflows/deploy.yaml/badge.svg)\n[![Static Badge](https://img.shields.io/badge/Docs-latest-%237e56c2)](https://ashgw.github.io/litecrypt)\n[![Python Versions](https://img.shields.io/badge/Python-3.8%7C3.9%7C3.10%7C3.11%7C3.12-blue)](https://pypi.org/project/litecrypt/)\n[![Static Badge](https://img.shields.io/badge/PyPI-latest-brightgreen)](https://pypi.org/project/litecrypt/)\n\n## Overview\nSo I made this library for personal use to secure some of my personal files & hit the [connect](https://wtf-g-who-u-searching-for-champ.com) from time to time.\nIt provides support for both fast and highly computationally intensive encryption. Also, it includes a database integration system which facilitates the restoration of files to their original state if necessary, and a GUI is also included to obviate the need to write code.\n<br>\nThe docs can be accessed **[here](https://ashgw.github.io/litecrypt)**, I made it so I don't forget wtf I was yapping about a couple of months ago, probably not so useful for visitors.\n\n## Installation\n```shell\npip install litecrypt\n```\n## Usage\n\n```python\nfrom litecrypt import CryptFile, gen_key\n\nkey = gen_key()\nCryptFile('file_of_any.type', key).encrypt()\n# the file is now called ==> 'file_of_any.type.crypt\n```\nThe encryption process is **blazingly fast** by default, to make it computationally intensive\n<details><summary>Do this</summary>\n\n```python\nfrom litecrypt import CryptFile, gen_key\n\nkey = gen_key()\nCryptFile('anyfile.txt',\n key=key,\n intensive_compute=True,\n iteration_rounds=10000\n ).encrypt()\n```\n> Running `intensive_compute` with no `iteration_rounds` sets the rounds to 50 (minimum) by default\n\nTo decrypt simply run:\n\n\n```python\nfrom litecrypt import CryptFile\n\nkey = 'THE_KEY_YOU_USED'\nCryptFile('anyfile.txt.crypt',key=key).decrypt()\n```\n</details>\n\n\nFor messages:\n```python\nfrom litecrypt import Crypt, gen_key\n\nkey = gen_key()\nencrypted = Crypt('any message', key).encrypt() # can also be a bytes message\nprint(encrypted) # Check the return value\n```\n\n### Details\n<br>**Algorithm:** AES-256 CBC\n<br>**Layout:**\n````commandline\n+-------------+ +--------+ +------------+ +-------------+ +-------------+ +------------------+\n| HMAC | \u2192| IV | \u2192| Salt | \u2192| Pepper | \u2192| Iterations | \u2192| KDF ID | \u2192\n+-------------+ +--------+ +------------+ +-------------+ +-------------+ +------------------+\n +------------------+\n | Ciphertext ...\n +------------------+\n````\nAES and HMAC keys, each 32 bytes, are derived from the main key (`gen_key()`) using the chosen KDF with SHA256. Iterations range from 50 to 100,000 the higher they go the more time it takes to compute, that's 4 bytes. IV that's 16, Salt, and Pepper are also 16 byte random values, both mixed with the KDF. The ciphertext size varies, with the crypto process employing PKCS7 padding.\n\n<h3>Supported Databases</h3>\n\nCurrently, supports MySQL, PostgresSQL and SQLite.\n<br>Check the **[docs](https://ashgw.github.io/litecrypt)** for more info.\n\n### GUI\n\n![alt text](docs/assets/GUI.png)\n\n<details><summary>Here's how it works</summary>\n\nhttps://github.com/AshGw/litecrypt/assets/126174609/190b6ab8-3f8a-4656-9525-dbaf5e56db5e\n\n</details>\n\n\n## License\n\nLitecrypt is open-source project & licensed under the [MIT License](https://github.com/AshGw/litecrypt/blob/main/LICENSE).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Simplifying encryption",
"version": "0.2.7",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "43a0e3bee989b76170eb9b9c28009259486c16a86d337bb853b0c71ba3f2738f",
"md5": "3fea570a3e666828ed0af2d99b9f0cd1",
"sha256": "4325370d9437f57b1f5432ba76b7f768dbdbf387971222d7e6aa1fd861f2e377"
},
"downloads": -1,
"filename": "litecrypt-0.2.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3fea570a3e666828ed0af2d99b9f0cd1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 32767,
"upload_time": "2023-12-29T02:43:13",
"upload_time_iso_8601": "2023-12-29T02:43:13.222089Z",
"url": "https://files.pythonhosted.org/packages/43/a0/e3bee989b76170eb9b9c28009259486c16a86d337bb853b0c71ba3f2738f/litecrypt-0.2.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "885aeb44e477097f9ac8854d7653464f880b0a9f930d0fc74a30057403fb4d79",
"md5": "f1dfcc7bb421506036a3cd1b9f74b476",
"sha256": "76de614bcc9298f5005ac2e82bb7f98c552c29e8d892b872c6d88d8ecb94edfd"
},
"downloads": -1,
"filename": "litecrypt-0.2.7.tar.gz",
"has_sig": false,
"md5_digest": "f1dfcc7bb421506036a3cd1b9f74b476",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 26728,
"upload_time": "2023-12-29T02:43:14",
"upload_time_iso_8601": "2023-12-29T02:43:14.407260Z",
"url": "https://files.pythonhosted.org/packages/88/5a/eb44e477097f9ac8854d7653464f880b0a9f930d0fc74a30057403fb4d79/litecrypt-0.2.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-29 02:43:14",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "litecrypt"
}