kdippan/SecurePixel
A secure, client-side image encryption tool that converts photos into visual noise using AES-GCM. 100% private, browser-based, with auto-cloud upload integration.
๐ก๏ธ SecurePixel - Browser-Based Image Encryption Tool
Turn sensitive photos into digital noise. 100% Client-Side. No Server Uploads.
๐ Launch Live App ยท ๐ Report Bug ยท โจ Request Feature
๐ About The Project
SecurePixel is a secure, open-source web application designed for client-side image encryption. Unlike other tools that upload your files to a server, SecurePixel processes everything directly in your browser using the Web Crypto API.
It utilizes military-grade AES-GCM encryption to transform your images into "Visual Noise" (randomized pixel static). These encrypted noise images are valid PNG files that can be safely hosted on public cloud storage (like ImgBB) or shared on social media without revealing the original content.
๐ Why Use SecurePixel?
- Privacy First: Your unencrypted photos never leave your device.
- Steganographic Output: Encrypted data is disguised as a glitchy "noise" image.
- Transparent Analytics: We use anonymous analytics to improve the app, but only if you grant explicit consent.
- Cloud Ready: Automatically uploads encrypted noise to the cloud for easy link sharing.
๐ Privacy & Security
We take privacy seriously. Here is exactly how we handle data:
- Zero-Knowledge Encryption: The encryption process happens entirely in your browser (
window.crypto.subtle). We (the developers) never see your original images, passwords, or encryption keys. - Consent-Based Analytics: We use Google Analytics to track page performance.
- Default: Analytics are BLOCKED by default.
- Consent: Scripts only load if you click "Accept" on the banner.
- Proof: We store a local timestamp of your consent decision to ensure compliance.
- No Personal Data: The analytics data is anonymized (
anonymize_ip: true) and never linked to your encrypted content.
โ๏ธ How It Works (The Magic)
SecurePixel combines cryptography with image manipulation to create a secure container for your data.
1. The Encryption Process
- Key Derivation: We use PBKDF2 (Password-Based Key Derivation Function 2) with 100,000 iterations to turn your text password into a cryptographic key.
- AES-GCM: The image file is converted to binary and encrypted using AES-GCM (Advanced Encryption Standard - Galois/Counter Mode), which ensures both confidentiality and data integrity.
- Pixel Mapping: The encrypted binary bytes are mapped to the Red, Green, and Blue (RGB) channels of a new HTML5 Canvas.
- Result: A downloadable PNG image that looks like TV static but holds your encrypted data perfectly.
2. The Decryption Process
- The app scans the "Noise Image" pixel by pixel to extract the RGB values.
- It reconstructs the encrypted binary buffer.
- It extracts the unique Salt and IV (Initialization Vector) embedded in the file header.
- Using your password, it attempts to decrypt the data. If the password is correct, the original image is revealed instantly.
๐ Key Features
- โ Military-Grade Security: AES-256-GCM encryption.
- โ Bulk Processing: Encrypt or decrypt multiple images at once via Drag & Drop.
- โ Auto-Cloud Upload: Integrated with ImgBB API to host encrypted images automatically.
- โ Dark/Light Mode: Auto-detects system preferences with a manual toggle.
- โ Responsive UI: Built with Tailwind CSS for a seamless experience on Mobile and Desktop.
- โ Full-Screen Viewer: Built-in secure image viewer.
๐ ๏ธ Built With
This project relies on modern web standards and zero external backend dependencies.
HTML5 Canvas - For pixel manipulation.
Vanilla JS (ES6+) - Core logic.
Tailwind CSS - For responsive styling.
Web Crypto API - Native browser cryptography.
Anime.js - Smooth UI transitions.
๐ป Getting Started
To run SecurePixel locally on your machine, follow these steps.
Prerequisites
- A modern web browser (Chrome, Firefox, Edge, Safari).
- Git installed on your machine.
Installation
-
Clone the repository
git clone [https://github.com/KDippan/SecurePixel.git](https://github.com/KDippan/SecurePixel.git)
-
Navigate to the project folder
cd SecurePixel -
Run the application
- Option A (VS Code): Right-click
index.htmland select "Open with Live Server". - Option B (Python):
Then open
python -m http.server 8000
http://localhost:8000in your browser.
> Note: Cryptography APIs require a Secure Context. Always use
localhostorhttps://. - Option A (VS Code): Right-click
๐ค Contributing
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
โ Support the Developer
If SecurePixel helped you keep your data safe, or if you just love open-source privacy tools, consider buying me a coffee! It helps keep the project alive and free.
๐ GitHub Sponsors
You can also support me directly on GitHub to help fund my open-source work.
Become a Sponsor
๐ค Author & Contact
Dippan Bhusal
- GitHub: @KDippan
- LinkedIn: Dippan Bhusal
- Twitter: @DippanBhusal
- Email: dippan.connect@gmail.com
๐ License
Distributed under the MIT License. See LICENSE for more information.
Built with โค๏ธ for a safer internet.
SecurePixel ยฉ 2026
