A lightweight and secure web application that allows users to encrypt and decrypt any file using a custom key. All operations are done client-side (in browser) or securely handled on the backend, ensuring your sensitive data remains protected.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- 🔑 Custom Key Encryption – Encrypt your file using your own secret key.
- 🔓 Decryption with or without key – If encryption was done without a key, decryption won't require one.
- 🧠 Simple UI/UX – Built for speed and usability.
- 📂 Supports All File Types – PDF, DOCX, MP4, PNG, TXT, etc.
- 🔐 AES-256-CBC Encryption – Strong and secure industry-standard encryption.
- 💻 Backend-Powered Security – Secure operations handled using Node.js & Crypto module.
Layer | Technology |
---|---|
Frontend | React.js, Tailwind CSS |
Backend | Node.js, Express.js |
Database | MongoDB (via Mongoose) |
Crypto | AES-256-CBC via Node.js crypto |
UUID | uuid for file identifiers |
// Step 1:
git clone https://github.com/deepakcode21/file-cryptography-encryption.git
cd encoder-decoder-file
// Step 2:
cd server
node server.js
// Step 3:
cd client
npm run dev
- Upload your file
- Enter a custom key (or skip if you want non-key encryption)
- Click Encrypt
- Your encrypted file will be ready for download
- Upload an encrypted file
- Enter the same key used during encryption (or skip if it was encrypted without key)
- Click Decrypt
- The original file will be available for download
Host instantly on: Deploy on Vercel
Uses AES-256-CBC with secure key derivation (PBKDF2 + salt + IV)
- Files are encrypted with a combination of:
- Random salt (to derive the key) -- Random iv (for cipher variation) -- Only encrypted data + metadata is stored. Your actual file is never exposed.
- Files are never shared publicly or stored insecurely
Pull requests are welcome! If you have suggestions for improvements or want to add new features (drag & drop, file history, etc.), feel free to open an issue or PR.
This project is licensed under the MIT License.
Made with ❤️ by Deepak (ArrowMax)