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
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) |
---|---|---|
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!
- Clone the repository:
git clone https://github.com/sDanielSilva/SimpleImageEncryptor.git
cd SimpleImageEncryptor
- Build the project using Maven:
mvn clean install
- Run the application:
java -jar target/SimpleImageEncryptor.jar
When you run the program, you will be prompted to:
-
Choose the operation:
1
for Encrypt2
for Decrypt
-
Select the encryption mode:
1
for ECB2
for CBC
-
Choose the encryption algorithm:
1
for AES2
for DES
-
If AES, specify the key size (128, 192, 256).
-
Enter the file paths:
- Encryption Key, Input and Output file paths (for decryption)
- Input and Output image file path (for encryption)
For example:
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
- 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.
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)
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!
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a pull request