Skip to content

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.

License

Notifications You must be signed in to change notification settings

kdippan/SecurePixel

πŸ›‘οΈ SecurePixel - Browser-Based Image Encryption Tool

SecurePixel Banner License Deployment Security PRs Welcome

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:

  1. 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.
  2. 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.
  3. 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

  1. Key Derivation: We use PBKDF2 (Password-Based Key Derivation Function 2) with 100,000 iterations to turn your text password into a cryptographic key.
  2. 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.
  3. Pixel Mapping: The encrypted binary bytes are mapped to the Red, Green, and Blue (RGB) channels of a new HTML5 Canvas.
  4. Result: A downloadable PNG image that looks like TV static but holds your encrypted data perfectly.

2. The Decryption Process

  1. The app scans the "Noise Image" pixel by pixel to extract the RGB values.
  2. It reconstructs the encrypted binary buffer.
  3. It extracts the unique Salt and IV (Initialization Vector) embedded in the file header.
  4. 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 HTML5 Canvas - For pixel manipulation.
  • JavaScript Vanilla JS (ES6+) - Core logic.
  • TailwindCSS Tailwind CSS - For responsive styling.
  • Web Crypto API Web Crypto API - Native browser cryptography.
  • Anime.js 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

  1. Clone the repository

    git clone [https://github.com/KDippan/SecurePixel.git](https://github.com/KDippan/SecurePixel.git)
  2. Navigate to the project folder

    cd SecurePixel
  3. Run the application

    • Option A (VS Code): Right-click index.html and select "Open with Live Server".
    • Option B (Python):
      python -m http.server 8000
      Then open http://localhost:8000 in your browser.

    > Note: Cryptography APIs require a Secure Context. Always use localhost or https://.


🀝 Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. 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.

Buy Me A Coffee

πŸ’– GitHub Sponsors

You can also support me directly on GitHub to help fund my open-source work. Become a Sponsor


πŸ‘€ Author & Contact

Dippan Bhusal


πŸ“„ License

Distributed under the MIT License. See LICENSE for more information.


Built with ❀️ for a safer internet.

SecurePixel Β© 2026