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.
- 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.
-
Install Poetry if not already installed:
curl -sSL https://install.python-poetry.org | python3 -
-
Clone the repository:
git clone git@github.com:aliezzahn/balue.git cd balue
-
Install the dependencies:
poetry install
-
Clone the repository:
git clone git@github.com:aliezzahn/balue.git cd balue
-
Install the dependencies using
pip
:pip install -r requirements.txt
Here's how you can use the ComplexEncryptor
class to encrypt and decrypt a message.
- Create an encryptor instance with a secret key.
- Encrypt a plaintext message.
- Decrypt the ciphertext to get back the original message.
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)
To test the encryption and decryption process, you can run the provided test script.
python tests/test_encryptor.py
balue/
│
├── README.md
├── balue/
│ ├── __init__.py
│ └── encryptor.py
└── tests/
└── test_encryptor.py
├── pyproject.toml
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
.
This project is licensed under the MIT License. See the LICENSE file for details.
We'd like to thank the following contributors:
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
- Inspired by classical encryption techniques and the need to understand basic cryptographic principles.