https://github.com/aliezzahn/balue
Balue: Advanced Multi-Layer Encryption Explore the intricacies of cryptographic techniques with Balu, a Python library implementing a sophisticated multi-layer encryption system. Balu combines substitution, permutation, and XOR ciphers to offer a customizable and educational approach to data security.
https://github.com/aliezzahn/balue
encryption python
Last synced: 3 months ago
JSON representation
Balue: Advanced Multi-Layer Encryption Explore the intricacies of cryptographic techniques with Balu, a Python library implementing a sophisticated multi-layer encryption system. Balu combines substitution, permutation, and XOR ciphers to offer a customizable and educational approach to data security.
- Host: GitHub
- URL: https://github.com/aliezzahn/balue
- Owner: aliezzahn
- License: apache-2.0
- Created: 2024-06-09T16:58:20.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-10T12:35:29.000Z (11 months ago)
- Last Synced: 2024-06-10T19:02:03.353Z (11 months ago)
- Topics: encryption, python
- Language: Python
- Homepage: https://pypi.org/project/balue/
- Size: 17.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# balue
Balue is a Python package that implements a multi-layered encryption algorithm for educational purposes. It combines substitution, permutation, and XOR encryption techniques to provide a basic encryption and decryption functionality.
## Features
- **Substitution Cipher**: Shifts each byte of the plaintext based on a key.
- **Permutation Cipher**: Shuffles the bytes of the text.
- **XOR Cipher**: XORs the shuffled bytes with the key.## Installation
### Using Poetry
1. **Install Poetry** if not already installed:
```bash
curl -sSL https://install.python-poetry.org | python3 -
```2. **Clone the repository**:
```bash
git clone [email protected]:aliezzahn/balue.git
cd balue
```3. **Install the dependencies**:
```bash
poetry install
```### Manual Installation
1. **Clone the repository**:
```bash
git clone [email protected]:aliezzahn/balue.git
cd balue
```2. **Install the dependencies** using `pip`:
```bash
pip install -r requirements.txt
```## Usage
### Encryption and Decryption Example
Here's how you can use the `ComplexEncryptor` class to encrypt and decrypt a message.
1. **Create an encryptor instance** with a secret key.
2. **Encrypt a plaintext message**.
3. **Decrypt the ciphertext** to get back the original message.```python
from balue.encryptor import ComplexEncryptor# Initialize the encryptor with a secret key
key = "super_secret_key"
encryptor = ComplexEncryptor(key)# Define the plaintext to be encrypted
plaintext = "This is a very secret message!"# Encrypt the plaintext
encrypted = encryptor.encrypt(plaintext)
print("Encrypted:", encrypted)# Decrypt the ciphertext
decrypted = encryptor.decrypt(encrypted['ciphertext'], encrypted['indices'])
print("Decrypted:", decrypted)
```### Running the Test Script
To test the encryption and decryption process, you can run the provided test script.
```bash
python tests/test_encryptor.py
```## Project Structure
```
balue/
│
├── README.md
├── balue/
│ ├── __init__.py
│ └── encryptor.py
└── tests/
└── test_encryptor.py
├── pyproject.toml
```## Security Considerations
This package is intended for educational purposes and should not be used for securing sensitive data in production environments. For real-world applications, rely on well-established cryptographic libraries and algorithms such as AES, RSA, and others provided by libraries like `cryptography`, `PyCrypto`, or `PyCryptodome`.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Contributors
We'd like to thank the following contributors:- [aliezzahn](https://github.com/aliezzahn)
- [SaeedHotshotBj](https://github.com/SaeedHotshotBj)## Contributing
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
## Acknowledgments
- Inspired by classical encryption techniques and the need to understand basic cryptographic principles.