litecrypt


Namelitecrypt JSON
Version 0.2.7 PyPI version JSON
download
home_page
SummarySimplifying encryption
upload_time2023-12-29 02:43:14
maintainer
docs_urlNone
authorAshref Gwader
requires_python>=3.8,<4.0
licenseMIT
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"
}
        
Elapsed time: 0.17388s