https://github.com/sdanielsilva/simpleimageencryptor
A versatile file encryption tool that securely encrypts and decrypts image and other file types with AES and DES algorithms, supporting multiple modes and easy key management.
https://github.com/sdanielsilva/simpleimageencryptor
aes cbc cipher cryptography cryptography-tools data-protection des ecb encryption file-encryption image-encryption iv-generation java key-management secure-file-storage security
Last synced: 7 months ago
JSON representation
A versatile file encryption tool that securely encrypts and decrypts image and other file types with AES and DES algorithms, supporting multiple modes and easy key management.
- Host: GitHub
- URL: https://github.com/sdanielsilva/simpleimageencryptor
- Owner: sDanielSilva
- Created: 2024-11-12T22:15:09.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2024-11-19T17:05:56.000Z (11 months ago)
- Last Synced: 2025-01-18T17:57:31.585Z (9 months ago)
- Topics: aes, cbc, cipher, cryptography, cryptography-tools, data-protection, des, ecb, encryption, file-encryption, image-encryption, iv-generation, java, key-management, secure-file-storage, security
- Language: Java
- Homepage:
- Size: 1.99 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🔐 Simple Image Encryptor - DES/AES Encryption
Welcome to **Simple Image Encryptor**, a tool that allows you to **encrypt and decrypt images** using DES and AES encryption with two modes: **ECB** and **CBC**. This project is a demonstration of how DES and AES encryption works in a simple, easy-to-understand way, making it perfect for learning and experimenting with cryptography!
✨ **Key Features:**
- DES and AES encryption in **ECB** and **CBC** modes
- Encrypt and decrypt image files seamlessly
- Choose between multiple AES key sizes: **128, 192, 256**
- Intuitive and easy-to-use## 🖼️ Example
Take a look at how the encryption process transforms your images!
| **Original Image** | **Encrypted Image (AES/ECB)** | **Encrypted Image (AES/CBC)** |
|-----------------------------------|-------------------------------------|------------------------------------|
|  |  |  || **Original Image** | **Encrypted Image (DES/ECB)** | **Encrypted Image (DES/CBC)** |
|-----------------------------------|-------------------------------------|------------------------------------|
|  |  |  |## 🚀 Getting Started
### Prerequisites
Before running the project, ensure you have the following installed:
- Java (JDK 17 or above)
- Maven (for dependency management)
- Git (for version control)
- An image file to test encryption!### Installing
1. **Clone the repository**:
```bash
git clone https://github.com/sDanielSilva/SimpleImageEncryptor.git
cd SimpleImageEncryptor
```2. **Build the project** using Maven:
```bash
mvn clean install
```3. **Run the application**:
```bash
java -jar target/SimpleImageEncryptor.jar
```### Usage
When you run the program, you will be prompted to:
1. Choose the operation:
- `1` for Encrypt
- `2` for Decrypt2. Select the encryption mode:
- `1` for ECB
- `2` for CBC3. Choose the encryption algorithm:
- `1` for AES
- `2` for DES4. If AES, specify the key size (128, 192, 256).
5. Enter the file paths:
- Encryption Key, Input and Output file paths (for decryption)
- Input and Output image file path (for encryption)For example:
```bash
Choose operation (1 - Encrypt, 2 - Decrypt): 1
Choose mode (1 - ECB, 2 - CBC): 2
Choose algorithm (1 - AES, 2 - DES): 1
Enter AES key size (128, 192, 256): 256
Enter input file path: images/original.bmp
Enter output file path: images/encrypted.bmp
```### Configuration
- **Key Sizes**: AES supports three key sizes: **128 bits**, **192 bits**, and **256 bits**.
- **Modes**: You can select either **ECB** (Electronic Codebook) or **CBC** (Cipher Block Chaining) mode for encryption.## 🎯 Roadmap
Here’s a quick look at what’s coming next:
- Support for more encryption algorithms (RSA, IDEA)
- Enhanced UI/UX (GUI for image upload, encryption, and download)## 🤝 Contributing
Feel free to fork the project and submit a pull request if you have ideas for improvements, new features, or bug fixes. We'd love to see your contributions!
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a pull request## 💬 Contact
- **Developer:** [Daniel Silva](https://github.com/sDanielSilva)
- **Email:** d.m.silva@ua.pt---
### ⭐️ Support This Project
If you like the project, please ⭐️ it! Any support is greatly appreciated.