StenoSafe is a web application designed for secure image-based steganography, allowing users to hide and retrieve text files within images using encryption. The application ensures data confidentiality and access control through user authentication and encryption mechanisms.
- User Authentication: Secure login via email/password using NextAuth.
- Encryption & Decryption:
- Upload an image (converted to PNG for compatibility).
- Enter a text message containing sensitive information.
- Optionally set a secret key for additional security.
- Store the encrypted image in the user's gallery.
- Retrieve and decrypt hidden text from an uploaded image.
- User Profile:
- Access previously encrypted images.
- Delete or download stored encrypted images.
- Security Enhancements:
- MongoDB database to securely store user data and images.
- Modern UI/UX:
- Responsive and user-friendly design.
- Frontend: Next.js, Tailwind CSS
- Backend: Node.js
- Database: MongoDB Atlas
- Authentication: NextAuth.js
- Deployment: Vercel
StenoSafe/
├── src/
│ ├── app/
│ │ ├── (auth)/ # Authentication pages
│ │ │ ├── login/
│ │ │ ├── register/
│ │ ├── about/
│ │ ├── api/ # Backend API routes
│ │ ├── contact/
│ │ ├── decryption/
│ │ ├── encryption/
│ │ ├── gallery/
│ │ ├── layout.jsx
│ │ ├── page.jsx
│ ├── assets/
│ ├── components/ # Reusable UI components
│ ├── lib/ # API handlers & services
│ ├── utils/ # Utility functions for encryption & decryption
│ ├── middleware.js # Middleware handling
- Clone the repository:
git clone https://github.com/yourusername/StenoSafe.git cd StenoSafe - Install dependencies:
npm install
- Set up environment variables in
.env.local:NEXTAUTH_URL=your_deployed_url NEXTAUTH_SECRET=your_secret_key MONGODB_URI=your_mongodb_connection_string
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser.
- Encryption
- Upload an image and a text file.
- Enter an optional secret key.
- Click Encrypt, and the encoded image is stored in the database.
- Decryption
- Upload the encrypted image.
- Enter the secret key (if set).
- Retrieve the hidden text securely.
- Implement AES-based encryption for added security.
- Progressive Web App (PWA) support.
- Advanced sharing options with access control permissions.
- Fork the repository.
- Create a new feature branch (
git checkout -b feature-name). - Commit changes (
git commit -m "Added new feature"). - Push to the branch (
git push origin feature-name). - Open a Pull Request.
This project is licensed under the MIT License.
Developed by Vishal Mishra
🌟 Feel free to contribute, report issues, and improve StenoSafe!