AES-Python


NameAES-Python JSON
Version 1.5.4 PyPI version JSON
download
home_pageNone
SummaryAES (Advanced Encryption Standard) implementation in Python-3
upload_time2024-04-25 07:45:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords aes aes-python advanced encryption standard encryption cryptography
VCS
bugtrack_url
requirements numpy galois
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ![AES-Python: A Python implementation of the Advanced Encryption Standard (AES)](https://raw.githubusercontent.com/glindeb/aes-python/core/repo/AES-Python-logo.png)

<div align=center>
  <a><img src="https://img.shields.io/badge/python%20-%203.11%20%7C%203.12%20-%20blue?logo=python&logoColor=white&color=247ac9"></a>
  <a><img src="https://img.shields.io/github/repo-size/glindeb/AES-python?label=size"></a>  
  <a><img src="https://img.shields.io/github/license/glindeb/AES-Python"></a>
  <a><img src="https://github.com/Glindeb/AES-Python/actions/workflows/test.yml/badge.svg"></a>
  <a><img src="https://github.com/Glindeb/AES-Python/actions/workflows/publish.yml/badge.svg?branch=core"> </a>
</div>

The `AES-Python` package is a Python implementation of the [Advanced Encryption Standard (AES)](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) using symmetric key cryptography. It supports two different modes of operation ([ECB, CBC](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation)) and the key lengths 128, 256, 512 bit. This project was originally created as a school project using almost only built in python libraries, but has now been updated and adapted to more heavily really on the [NumPy](https://numpy.org) and [galois](https://github.com/mhostetter/galois) packages. It has also been migrated to a more [OOP](https://en.wikipedia.org/wiki/Object-oriented_programming) focused structure. (The original school project can be seen in the [legacy](https://github.com/Glindeb/AES-Python/tree/legacy) branch.) 

> **Warning:**
> This project is not intended to be used in any other use case than experimentation and educational use. No security is guaranteed for data encrypted or decrypted using this library, and it may very well contain multiple unaddressed security vulnerabilities.

Features
---
- Implementation of the AES encryption and decryption processes.
- Support for two different modes of operation: ECB, CBC.
- Support for the three different key lengths included in the [AES standard](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf). (128, 192, 256 bit)
- Key expansion and round key generation.
- Encryption & decryption of individual files.
- Encryption & decryption of python string objects.

Acknowledgements
---
The `AES-Python` project relies heavily on both the [NumPy](https://numpy.org) and [galois](https://github.com/mhostetter/galois) packages in order to manage integer arrays and preform matrix operations and GF(2^8) [finite field](https://en.wikipedia.org/wiki/Finite_field) multiplication operations. This project would not have been possible without these libraries, so I would like to thank the developers of these projects.

Getting started
---
This is a short guide to help you get started.

### Installation
You can install the latest version of `AES-Python` from [PyPI](https://pypi.org/project/AES-Python/) using pip.

```
$ python3 -m pip install AES_Python
```

### Usage
Now you can import it and use it in you projects. Below is a short example snippet of how to utilize the package.

```
from AES_Python import AES

# Initialize the AES object
aes = AES(r_mode="ECB", key="your-encryption-key")

# Encrypt the data
encrypted_data = aes.enc("your-data")

# Decrypt the data
decrypted_data = aes.dec("your-encrypted-data")
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "AES-Python",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "AES, AES-Python, Advanced Encryption Standard, encryption, cryptography",
    "author": null,
    "author_email": "Gabriel Lindeblad <Gabriel.Lindeblad@icloud.com>",
    "download_url": "https://files.pythonhosted.org/packages/23/90/592743f6374455a5eb106b68e29d4dae1ffa1089373564ff9265e2e2e214/aes_python-1.5.4.tar.gz",
    "platform": null,
    "description": "# ![AES-Python: A Python implementation of the Advanced Encryption Standard (AES)](https://raw.githubusercontent.com/glindeb/aes-python/core/repo/AES-Python-logo.png)\n\n<div align=center>\n  <a><img src=\"https://img.shields.io/badge/python%20-%203.11%20%7C%203.12%20-%20blue?logo=python&logoColor=white&color=247ac9\"></a>\n  <a><img src=\"https://img.shields.io/github/repo-size/glindeb/AES-python?label=size\"></a>  \n  <a><img src=\"https://img.shields.io/github/license/glindeb/AES-Python\"></a>\n  <a><img src=\"https://github.com/Glindeb/AES-Python/actions/workflows/test.yml/badge.svg\"></a>\n  <a><img src=\"https://github.com/Glindeb/AES-Python/actions/workflows/publish.yml/badge.svg?branch=core\"> </a>\n</div>\n\nThe `AES-Python` package is a Python implementation of the [Advanced Encryption Standard (AES)](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) using symmetric key cryptography. It supports two different modes of operation ([ECB, CBC](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation)) and the key lengths 128, 256, 512 bit. This project was originally created as a school project using almost only built in python libraries, but has now been updated and adapted to more heavily really on the [NumPy](https://numpy.org) and [galois](https://github.com/mhostetter/galois) packages. It has also been migrated to a more [OOP](https://en.wikipedia.org/wiki/Object-oriented_programming) focused structure. (The original school project can be seen in the [legacy](https://github.com/Glindeb/AES-Python/tree/legacy) branch.) \n\n> **Warning:**\n> This project is not intended to be used in any other use case than experimentation and educational use. No security is guaranteed for data encrypted or decrypted using this library, and it may very well contain multiple unaddressed security vulnerabilities.\n\nFeatures\n---\n- Implementation of the AES encryption and decryption processes.\n- Support for two different modes of operation: ECB, CBC.\n- Support for the three different key lengths included in the [AES standard](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf). (128, 192, 256 bit)\n- Key expansion and round key generation.\n- Encryption & decryption of individual files.\n- Encryption & decryption of python string objects.\n\nAcknowledgements\n---\nThe `AES-Python` project relies heavily on both the [NumPy](https://numpy.org) and [galois](https://github.com/mhostetter/galois) packages in order to manage integer arrays and preform matrix operations and GF(2^8) [finite field](https://en.wikipedia.org/wiki/Finite_field) multiplication operations. This project would not have been possible without these libraries, so I would like to thank the developers of these projects.\n\nGetting started\n---\nThis is a short guide to help you get started.\n\n### Installation\nYou can install the latest version of `AES-Python` from [PyPI](https://pypi.org/project/AES-Python/) using pip.\n\n```\n$ python3 -m pip install AES_Python\n```\n\n### Usage\nNow you can import it and use it in you projects. Below is a short example snippet of how to utilize the package.\n\n```\nfrom AES_Python import AES\n\n# Initialize the AES object\naes = AES(r_mode=\"ECB\", key=\"your-encryption-key\")\n\n# Encrypt the data\nencrypted_data = aes.enc(\"your-data\")\n\n# Decrypt the data\ndecrypted_data = aes.dec(\"your-encrypted-data\")\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "AES (Advanced Encryption Standard) implementation in Python-3",
    "version": "1.5.4",
    "project_urls": {
        "Documentation": "https://github.com/Glindeb/AES-Python",
        "Homepage": "https://github.com/Glindeb/AES-Python",
        "Repository": "https://github.com/Glindeb/AES-Python"
    },
    "split_keywords": [
        "aes",
        " aes-python",
        " advanced encryption standard",
        " encryption",
        " cryptography"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "375c5a632f198b2489130c16390c8b64f7857efb83894b34bfa9ff50717ba37d",
                "md5": "738f5a63a6cecfbafc247813cace28fd",
                "sha256": "85fd29b75cd91fd55c9579825c04e1c7705fdb800cb23418b9c064ed2acaab9c"
            },
            "downloads": -1,
            "filename": "AES_Python-1.5.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "738f5a63a6cecfbafc247813cace28fd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 9571,
            "upload_time": "2024-04-25T07:45:29",
            "upload_time_iso_8601": "2024-04-25T07:45:29.769792Z",
            "url": "https://files.pythonhosted.org/packages/37/5c/5a632f198b2489130c16390c8b64f7857efb83894b34bfa9ff50717ba37d/AES_Python-1.5.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2390592743f6374455a5eb106b68e29d4dae1ffa1089373564ff9265e2e2e214",
                "md5": "554dbbe45ebff72ad1c32c644f21edc3",
                "sha256": "fbe1feea2da2ba3907d785ea13308f52a393d325cae4eef36409afb245076224"
            },
            "downloads": -1,
            "filename": "aes_python-1.5.4.tar.gz",
            "has_sig": false,
            "md5_digest": "554dbbe45ebff72ad1c32c644f21edc3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 19156,
            "upload_time": "2024-04-25T07:45:30",
            "upload_time_iso_8601": "2024-04-25T07:45:30.973076Z",
            "url": "https://files.pythonhosted.org/packages/23/90/592743f6374455a5eb106b68e29d4dae1ffa1089373564ff9265e2e2e214/aes_python-1.5.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-25 07:45:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Glindeb",
    "github_project": "AES-Python",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "galois",
            "specs": []
        }
    ],
    "tox": true,
    "lcname": "aes-python"
}
        
Elapsed time: 0.24868s