A comprehensive full-stack web application implementing Advanced Encryption Standard (AES) encryption and decryption functionality, featuring a C++ core, a modern Next.js (TypeScript) frontend, and a Python FastAPI backend.
With this application, you can quickly and securely encrypt or decrypt your data in real time using trusted, industry-standard AES algorithms. Whether you're just starting to explore the world of cryptography or looking to protect your sensitive information, our user-friendly interface makes the process simple and accessible for everyone. Enjoy learning, experimenting, and keeping your data safeβall in one place!
- C++ Algorithm: Core AES encryption and decryption implemented in C++ for high performance
- Python FastAPI Backend: Secure RESTful API endpoints for encryption/decryption using FastAPI
- Next.js Frontend: Modern, intuitive web interface built with Next.js and TypeScript
- Real-Time Processing: Instant encryption and decryption with live results
- Educational Resource: Well-structured code demonstrating AES implementation principles
- π§ C++ Algorithm: Blazing-fast AES encryption and decryption at the core
- β‘ Python FastAPI Backend: Lightning-quick, secure RESTful API endpoints
- π¨ Next.js Frontend: Sleek, modern web interface built with TypeScript & React
Below is a visual representation of the AES encryption process:
- Node.js (v14 or higher)
- Python 3.8 or higher
- C++ compiler (GCC or equivalent)
- Git
- Clone the Repository
git clone https://github.com/Eli4479/AES.git
cd AES
- Backend Setup
cd backend
pip install fastapi uvicorn python-multipart cryptography
uvicorn main:app --reload
- Frontend Setup
cd frontend
npm install
npm start
- C++ Core Setup
cd ../AES
g++ -o aes_encrypt main.cpp
./aes_encrypt
- Navigate to the frontend application (typically
http://localhost:3000
) - Enter your text in the input field
- Provide an encryption key (must be 16 characters or less for AES-128)
- Click "Encrypt" to encrypt your data or "Decrypt" to decrypt previously encrypted data
- View results in real-time
The FastAPI backend provides the following endpoints:
GET /
- Health check or welcome endpointPOST /aes
- Handles both encryption and decryption based on request parametersGET /docs
- Interactive API documentation
The project implements the Advanced Encryption Standard (AES) with the following specifications:
- Block Size: 128 bits (16 bytes)
- Key Sizes: 128 bits
- Padding: PKCS7 padding for data alignment
- Strong Encryption: Uses industry-standard AES algorithm with robust key management
- Multiple Key Lengths: Supports AES-128 for security requirements
- Input Validation: Comprehensive validation of keys, data, and parameters
POST /aes
Content-Type: application/json
{
"input": "Your plaintext/encrypted text here",
"key": "your-encryption-key",
"mode": "encrypt/decrypt"
}
{
"result": "Encrypted or decrypted text here",
"status": "success"
}
AES/
βββ frontend/ # TypeScript/React frontend
βββ backend/ # FastAPI Python backend
βββ AES/ # C++ core implementation
βββ .gitignore # Git ignore rules
βββ README.md # Project documentation
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- TypeScript: Follow ESLint configuration with strict type checking
- Python: Adhere to PEP 8 style guidelines with FastAPI best practices
- C++: Use modern C++17 standards with clear naming conventions
The project includes comprehensive testing suites:
- Unit Tests: Individual component testing for all encryption/decryption functions
- Integration Tests: End-to-end testing of API endpoints
- Security Tests: Validation of encryption strength and key management
This project is open source and available under the MIT License.
- Built using modern web development best Practices
- Implements AES standards as defined by NIST
- Utilizes FastAPI framework for high-performance API development
- Frontend developed with Next.js with TypeScript for type safety and maintainability
For questions, issues, or contributions, please visit the GitHub repository or open an issue in the project's issue tracker.