A comprehensive web application that implements various cryptographic algorithms including AES, DES, Caesar, Vigenere, Vernam, and Transposition ciphers. The application provides both text and file encryption/decryption capabilities through a user-friendly interface.
- AES (Advanced Encryption Standard): 128-bit encryption with ECB mode
- DES (Data Encryption Standard): TripleDES implementation
- Caesar Cipher: Classic shift cipher with customizable shift value
- Vigenere Cipher: Poly-alphabetic substitution cipher
- Vernam Cipher: XOR-based encryption with key length matching file size
- Transposition Cipher: Columnar transposition with keyword-based encryption
- Text encryption/decryption
- File encryption/decryption
- Support for various file types
- Automatic key generation for Vernam cipher
- Swagger API documentation
- RESTful API backend
- Modern React-based frontend
- Responsive and intuitive user interface
- Node.js (v14 or higher)
- npm (v6 or higher)
- Modern web browser (Chrome, Firefox, Safari, or Edge)
- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Create a
.envfile in the backend directory with the following content:
PORT=5000
- Start the backend server:
node server.jsThe backend will be available at http://localhost:5000
- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Start the development server:
npm startThe frontend will be available at http://localhost:3000
Once the backend is running, you can access the Swagger API documentation at:
http://localhost:5000/api-docs
- AES: 16-character key
- DES: 24-character key
- Caesar: Numeric shift value
- Vigenere: Alphabetic key
- Vernam: Key length must match file size
- Transposition: Keyword with at least 2 unique characters
- Maximum file size: 100MB
- Supports various file types (text, binary, etc.)
- Secure file upload and download
- Input validation on both frontend and backend
- Navigate to the backend directory
- Run tests:
npm test- Navigate to the frontend directory
- Run tests:
npm testCryptographyWebApp/
├── backend/
│ ├── server.js # Main server file
│ ├── swagger.js # API documentation
│ ├── tests/ # Test files
│ └── package.json # Backend dependencies
├── frontend/
│ ├── src/ # React source code
│ ├── public/ # Static files
│ └── package.json # Frontend dependencies
└── README.md # Project documentation
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Node.js and Express for the backend
- React for the frontend
- CryptoJS for cryptographic operations
- Swagger for API documentation