You know that feeling when you’re learning to code and suddenly think,
“What if I could hide my files inside a cat picture?”
Yeah, that’s how InvisioVault was born.
This was my first ever project, and oh boy, it was beautifully disastrous.
Imagine one giant Python file doing everything — backend, frontend, emotional damage — all in one.
It somehow worked (occasionally). When the planets aligned. And my Wi-Fi didn’t.
Fast forward a bit — I learned how to actually write code like a functioning human being, gave the project a full glow-up, and now it looks like something an adult programmer might have made.
So… What Even Is InvisioVault? 🤔
Think of it as your digital secret vault that looks completely innocent.
It does two main things (and both are borderline wizardry):
🖼️ 1. Steganography Mode
You take an image. You take a file. You merge them.
Boom — your vacation photo now secretly holds your private notes or even another file inside it.
It’s like hiding your diary inside a meme.
🔗 2. Polyglot Mode (The “Wait, That’s Legal?” One)
This one’s wild. You create a single file that works as two formats at the same time.
A .jpg that’s also a .zip.
Open it as an image → pretty picture.
Rename it to .zip → surprise! There’s hidden data inside.
Basically, it’s file inception. 🌀
The Tech Behind the Madness 💻
Backend (a.k.a. The brain that holds everything together with duct tape):
- 🐍 Flask – because I didn’t need Django yelling at me yet
- 🖼️ Pillow – for all the image sorcery
- 🔐 Cryptography – password encryption so strong even I forgot mine once
- 🧩 Pyzipper – AES-256 encrypted zips (because 1990s ZIP security ain’t it)
Frontend (the part that pretends to be user-friendly):
- ⚛️ React – because we’ve all agreed to use it at this point
- ⚡ Vite – fast enough to make me feel like I know what I’m doing
- 📡 Axios – API calls without the tears
- 🎨 CSS3 – dark mode supremacy 😎
How the “Hide Stuff in Images” Thing Works 🎨
Every pixel in an image has three color values: Red, Green, and Blue.
Each number is from 0 to 255 — so we just tweak the last bit of each color to store data.
It’s like whispering secrets into pixels:
# Original pixel: (147, 89, 201)
# Binary: (10010011, 01011001, 11001001)
Then, to hide one byte (10110101), we mess with the last bit:
pixel[0] = (pixel[0] & ~1) | bit1
pixel[1] = (pixel[1] & ~1) | bit2
pixel[2] = (pixel[2] & ~1) | bit3
The result: the picture looks exactly the same.
But it’s now holding secrets like a digital spy. 🕵️♂️
Polyglot Files — The Nerdy Magic 🧙♂️
ZIP files are read from the end.
So you can slap a full image before it, adjust a few offsets, and ZIP readers won’t care.
[IMAGE DATA][ZIP DATA]
Open it as an image → works fine.
Rename it → extracts a whole hidden file.
Same bytes. Two personalities. Absolute chaos.
Cool Features I’m Weirdly Proud Of 🚀
🔒 Password Protection
- Steganography mode → Fernet encryption
- Polyglot mode → AES-256 (a.k.a. Fort Knox level)
Try the wrong password?
Nope. Nada. Zilch.
📝 Text Mode
Don’t want to create a file? Just type your secret directly into the app.
We’ll turn it into a hidden message. Lazy-friendly.
🧠 Smart Extraction
If you hide a text file, it’ll show right in the browser instead of forcing a download. Because convenience = happiness.
🌙 Dark Mode
White backgrounds are crimes against night owls.
The Code (aka: "It Works, I Swear") 💾
Everything’s open source and slightly chaotic here:
🔗 github.com/Mrtracker-new/InvisioVault
Quick Start (a.k.a. Summon the Beast):
git clone https://github.com/Mrtracker-new/InvisioVault.git
cd InvisioVault
# Backend
cd backend
python -m venv venv
venv\Scripts\activate # Windows users, hi 👋
pip install -r requirements.txt
python app.py
# Frontend (new terminal)
cd frontend
npm install
npm run dev
# Then open http://localhost:5173 and pray.
Things I Learned While Losing My Sanity 📚
- Split your code – one file does not rule them all
- Dark mode saves souls
- Type hints = future sanity insurance
- Polyglots are real – not just a myth from hacker forums
- Your first project will be trash – and that’s okay. Refactor it later. Shine it up. Show it off.
Future Plans (a.k.a. When I Recover from This) 🔮
- Maybe a mobile app 📱
- Hide files inside PDFs, videos, or even music (imagine a secret inside a song 🎶)
- Batch processing
- A CLI version for terminal nerds
Try It Out 🎮
Go ahead — upload an image, hide something, extract it again.
Watch your face go from 🤔 to 😲 in 3 seconds.
Found a bug? Cool, I call them “features in disguise.”
But feel free to open an issue or PR (kindly, please).
Fun Fact:
This entire project started at 3 A.M. when I randomly thought,
“Can I hide a file inside another file?”
Turns out… you can.
And now it’s an app with dark mode.
Drop a ⭐ if you think this is cool!
Or don’t. I’m not your manager. 😆
GitHub Repo
What’s the most ridiculous idea you’ve actually made work? Share it below — let’s normalize turning “stupid 3 A.M. ideas” into working projects. 💪
Top comments (0)