The name "Cipherion" is associated exclusively with this project. Unauthorized use or replication of the name "Cipherion" for similar purposes is discouraged. If you wish to use the name or reference this project, please contact the author for permission.
- Overview 🔍
- Features ✨
- Installation ⚙️
- Usage ✅
- How it works ❓
- Contributing 🤝
- Disclaimer
⚠️ - License ℹ️
Cipherion is a robust tool for encrypting and securely storing sensitive information supporting multiple algorithms such as AES, ChaCha20Poly1305, Blowfish and TripleDES (3DES). With its intuitive command-line interface and seamless MySQL integration, this tool allows you to manage your data efficiently and securely.
- Multiple Encryption Algorithms: Choose from AES, ChaCha20Poly1305, Blowfish or TripleDES (3DES) for flexible encryption options, depending on your security needs.
- MySQL Integration: Connect to a MySQL database to store all related encrypted data.
- Recovery Phrase: An unique recovery phrase is generated with every encryption, ensuring data security.
- Automatic Key Rotation: Supports automatic key rotation for the corresponding decrypted record, ensuring encryption keys are updated whilst maintaining data security.
- Secure Password Masking: Database password is securely masked during input, protecting sensitive login credentials.
- User-friendly Command-Line Interface: Detailed and intuitive prompts, along with informative tables guide you through seamless encryption and decryption.
- Download Python.
- Download MySQL Community Server.
- Download Visual Studio Code or any text editor/IDE.
- The application is compatible with Python version 3.x and works on any OS that supports it (Windows, macOS, Linux).
- MySQL Community Server version 8.x or higher is recommended for optimal performance and compatibility.
-
Click
Star
to support development. -
Clone the repository:
- Click the
Code
button. - From the drop-down that appears, click
Download ZIP
to download the entire repository as a ZIP folder.
- Click the
-
Extract the files to a new folder and open it with Visual Studio Code or any text editor/IDE of your choice.
-
Install required packages: Run the command to get all dependencies:
pip install -r requirements.txt
To run the application, execute the following command in your terminal:
python main.py
-
Connecting to MySQL:
- Upon launching the application, you are prompted to enter your MySQL root password and specify the database name. The application checks whether the database exists and creates one if it doesn’t, ensuring a seamless setup for secure data storage.
-
Encrypting data:
- To encrypt your data, simply input the text you want to secure. You’ll then be prompted to choose an encryption algorithm (AES, ChaCha20Poly1305, Blowfish or TripleDES (3DES)). The application generates an unique recovery phrase, encrypted text, encryption key and a nonce/initialization vector (depending on the chosen algorithm) and thereby encrypts your data.
-
Storing encrypted data:
- The application stores the encrypted text, encryption key, hashed recovery phrase and corresponding algorithm in the database. Each encrypted record is linked to a unique ID, making it easy to retrieve and manage.
-
Decrypting data:
- To decrypt your data, you need to enter the corresponding recovery phrase. The application hashes the recovery phrase input, and matches it against stored hashed recovery phrase(s). If valid, it retrieves the corresponding record id, encrypted text and key from the database and decrypts the data, revealing the original message. Additionally, the application supports automatic key rotation, ensuring re-encryption of corresponding data record with new encrypted data and encryption key.
We welcome contributions to enhance Cipherion! For detailed instructions on how to contribute, please refer to CONTRIBUTING.md and follow CODE_OF_CONDUCT.md. These documents include the contributing guidelines and the code of conduct to be followed.
Cipherion is intended for educational purposes and personal use only. While this application implements encryption techniques, it does not guarantee complete security against data breaches or cyber threats. Users are responsible for the security of their data and should consider additional protective measures as necessary. Use this tool at your own risk.
Released under the terms of Apache License 2.0.