A Web-Based Text Encryption and Decryption App
Course: CS166 - Information Security, Fall 2025
Instructor: Dr. Chao-Li Tarng
Team 8: Jaspreet Aujla, Akanksha Raghapur, Ryan Shim
San José State University
SecureText is an educational web application that demonstrates text encryption and decryption using classical and modern cryptographic algorithms.
- Caesar Cipher - Classical substitution cipher with configurable shift
- Vigenère Cipher - Polyalphabetic substitution cipher with keyword
- AES-256 - Modern symmetric encryption standard
- Side-by-side algorithm comparison
- Encryption visualization
- Performance timing
- Security level indicators
- Python 3.8 or higher
- pip (Python package manager)
# Clone the repository
git clone https://github.com/your-repo/SecureText.git
cd SecureText
# Create a virtual environment
python3 -m venv venv
# Activate the virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python app.py# Clone the repository
git clone https://github.com/your-repo/SecureText.git
cd SecureText
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python app.py# Clone the repository
git clone https://github.com/your-repo/SecureText.git
cd SecureText
# Create a virtual environment
python3 -m venv venv
# Activate the virtual environment
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run the application
python app.pyOnce the server is running, open your browser and navigate to:
You should see the SecureText web interface.
- Select an algorithm - Choose from Caesar Cipher, Vigenère Cipher, or AES-256
- Enter your text - Type or paste the text you want to encrypt/decrypt
- Enter the key:
- Caesar: A number from 0-25 (shift value)
- Vigenère: A keyword (letters only, e.g., "SECRET")
- AES: Any text string (will be used as the encryption key)
- Click Encrypt or Decrypt - View the result in the output box
- Compare algorithms - Click "Compare All Algorithms" to see a side-by-side comparison
SecureText/
├── app.py # Flask backend with encryption logic
├── requirements.txt # Python dependencies
├── README.md # This file
├── templates/
│ └── index.html # Main HTML template
└── static/
├── css/
│ └── style.css # Styling
└── js/
└── main.js # Frontend JavaScript
- Frontend: HTML, CSS, JavaScript
- Backend: Flask (Python)
- Encryption: Custom implementations (Caesar, Vigenère) + pycryptodome (AES)
On macOS/Linux, use python3 instead of python.
Create a virtual environment as shown in the installation steps above.
Port 5000 is used by AirPlay Receiver on macOS. The app runs on port 5001 instead.
- William Stallings, Cryptography and Network Security, 8th Edition, 2022
- Python pycryptodome Documentation - https://pycryptodome.readthedocs.io