This Python application encrypts and decrypts images using AES (Advanced Encryption Standard) in CBC mode, providing a secure way to protect your image data. The tool ensures that sensitive information remains confidential by leveraging robust encryption techniques.
Before you begin, ensure that your environment meets the following requirements:
-
Python 3.x: The application is written in Python and requires version 3.x.
-
tkinter for GUI elements: This comes pre-installed with most Python installations. If not available, it can be installed using
pip
. -
Pillow: A fork of PIL (Python Imaging Library) that adds image file handling capabilities. You can install it via pip:
pip install Pillow
-
Clone this repository or download the files.
-
Navigate to the directory containing the Python script:
cd path/to/SecureImageTool/
-
Run the application using Python 3.x interpreter:
python SecureImageTool.py
-
Create a virtual environment if you haven't already done so:
python3 -m venv env_name
-
Activate the virtual environment:
- For macOS/Linux:
source env_name/bin/activate
- For Windows:
.\env_name\Scripts\activate
- For macOS/Linux:
-
Install the required dependencies within the virtual environment:
pip install Pillow pycryptodome
The following libraries are required for this project:
tkinter
- For building the graphical user interface (GUI).Pillow
- To handle image operations, specifically converting an image into bytes.pycryptodome
- Provides cryptographic functions including AES encryption.
You can install these dependencies using pip:
pip install Pillow pycryptodome
The GUI prompts users for a password and allows them to select images for encryption/decryption.
- Open the application.
- Enter your desired password in the "Password" field.
- Click on "Encrypt".
- Select the image file you want to encrypt from the file dialog box that appears.
- The encrypted file will be saved with a
.enc
extension.
- Open the application.
- Enter your desired password in the "Password" field.
- Click on "Decrypt".
- Select the encrypted image file (
.enc
) you want to decrypt from the file dialog box that appears. - The decrypted image will be saved with a
.png
extension.
- Multiple File Encryption: You can encrypt multiple images by repeating the encryption process for each file.
- Custom Password Strength: Choose strong passwords by combining uppercase, lowercase, numbers, and special characters.
- Password Reset Functionality: If you forget your password, use the built-in reset functionality to generate a new one.
If you spot any bugs, have suggestions for improvements, or want to contribute additional features, please follow these steps:
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/tanm-sys/SecureImageTool.git
- Create a branch for your feature or bug fix:
cd SecureImageTool git checkout -b name-of-your-bugfix-or-feature
- Commit your changes and push to the remote repository.
- Submit a pull request.
Ensure that your code adheres to PEP 8 style guidelines, and include appropriate documentation and tests if applicable.
This project is licensed under the MIT License - see the LICENSE
file for details.