A cybersecurity-focused mobile application built with Flutter and a FastAPI backend in Python, designed to perform:
- Text encryption and decryption using Caesar Cipher
- Image encryption and decryption using XOR pixel manipulation
- Password strength evaluation based on entropy and structure
Designed for Cybersecurity Practice, this tool demonstrates a simple yet powerful example of secure message and media exchange.
- Caesar Cipher with custom shift key.
- Input any ASCII-compatible message.
- Converts plain text to cipher text and vice versa.
- Buttons for copy, paste, and share.
- Select image from gallery or camera.
- Apply XOR encryption/decryption using numeric key.
- Preview of selected image and processed image.
- Share or download the encrypted/decrypted image.
- Saves encrypted images to device gallery.
- Enter any password to check how secure it is
- Returns one of: Weak, Medium, Strong, or Very Strong
- Backend evaluates password entropy, character types, and length
- Colored strength indicator: 🔴 Red (Weak), 🟡 Yellow (Medium), 🟢 Green (Strong/Very Strong)
- Fully mobile-friendly layout.
- App bar titles dynamically reflect user-selected operation.
- Clear separation between logic (backend) and UI (Flutter frontend).
- Compatible with Android 15 and MediaStore image saving.
-
User lands on a Home Screen with four options:
- Encrypt Text
- Decrypt Text
- Encrypt Image
- Decrypt Image
- Password checker
-
Based on selection, user is navigated to:
process_screen.dartfor textimage_process_screen.dartfor imagespassword_check_screen.dartfor password strength checking
-
The Flutter app sends a POST request to the local FastAPI backend:
- For text:
/cipherendpoint - For image:
/image_cipherendpoint (uses XOR logic on RGB pixels) - For password:
/check_passwordendpoint
- For text:
-
The result is shown on the screen with options to copy, share, or save.
cryptographer/ ├── lib/ │ ├── main.dart # Home screen (mode selection) │ ├── process_screen.dart # Text Encryption/Decryption │ ├── image_process_screen.dart # Image Encryption/Decryption screen │ └── password_check_screen.dart # Password Strength Checker ├── backend/ │ ├── requirements.txt # Python dependencies │ ├── render.yaml # render configurations │ └── main.py # FastAPI backend (Python) ├── android/ # Native Android config ├── pubspec.yaml # Dart dependencies └── README.md # You're here!
- Install Flutter: https://flutter.dev/docs/get-started/install
- Clone the repository:
git clone https://github.com/PulkitGahlot/CODECRAFT_CS_03.git cd CODECRAFT_CS_03 - Install packages:
flutter pub get
- Connect your Android phone via USB or use an emulator.
- Make sure your PC and phone are on the same Wi-Fi network
- Install dependencies:
pip install fastapi uvicorn pydantic pillow
- Run the server:
or use
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload
- Replace 10.0.2.2 in Dart code with your PC's local IP (e.g. 192.168.x.x) so the app can reach the server.
- Run the Application:
flutter run
Dart (Flutter)
- http
- flutter/services (clipboard)
- image_picker
- path_provider
- share_plus
- google_fonts
Python
- fastapi
- uvicorn
- pydantic
- pillow
- Password Strength Checker screen added
- Password entropy logic on backend using FastAPI
- Colored strength text (red/yellow/green)
- Toggle visibility of password text input
- Improved responsiveness & async UX
- Cryptographer
- Or Scan the QR Code for Direct Download

NOTE: Encryption and Decryption of Images takes some time (Due to Slow Server response sometime). Please wait for some time to get the Output of the Image Encryption and Decryption. Thank you!
Hi, I'm Pulkit Gahlot, a cyber security enthusiast and passionate to be an ethical hacker.
“A good hacker is the one who breaks systems, to build secure ones.”
Feel free to connect!
- Linkedin: Pulkit Gahlot
- X: Pulkit_Gahlot_
- GitHub: PulkitGahlot
- E-Mail: pulkitgahlot85@gmail.com
Thank you for visiting my GitHub page!



