Author: Ali Emre Karatopuk
A web application built with Flutter and Firebase that lets users encrypt and decrypt messages using the Caesar or Vigenère ciphers.
This project was developed as part of the Web Application Security course assignment.
The login page lets users sign in with an existing account or register a new one before using the application.
The main page is where encryption and decryption take place. Messages may include any unicode characters such as letters, numbers, punctuation, or even emojis.
The app supports two ciphers:
-
Caesar: The key is a number that represents the shift amount.
-
Vigenère: The key is a sequence of characters. Users can enter any Unicode characters.
After running an encryption or decryption, the result is displayed at the bottom of the page.
The history panel shows all past cryptographic operations. Each entry includes:
- The original message.
- The key used.
- The resulting text (encrypted/decrypted).
- The algorithm used (Caesar or Vigenère).
- The mode (Encrypt or Decrypt).
- The date and time of the operation.
Follow these steps to run the app locally:
- Install Flutter by following the instructions here.
- Clone this repository.
- Install Flutter dependencies using
flutter pub get.
This web application uses Firebase as its backend. Therefore, Firebase needs to be configured by following the steps below:
- Create a Firebase project.
- Enable Firestore Database and Authentication services.
- Run
flutterfire configureto generate thelib/firebase_options.dartfile with your Firebase connection parameters.
The app will not work without Firebase integration.
Finally, to run the application locally, you need to execute:
flutter run -d chromeThis project is for educational purposes only. Caesar and Vigenère are not secure for real-world cryptography.

