Inspiration
As far as I know, there are currently no widely available software solutions or techniques specifically optimized for large file sharing in a secure and private manner. The idea behind SecureTransfer Pro was born out of the need for a fast, private, and secure way to transfer large files directly between devices, without relying on cloud services or third-party platforms. We wanted a protocol that is not only encrypted but also efficient, customizable, and easy to use across different environments — especially within local networks.
What it does
SecureTransfer Pro is a peer-to-peer, secure file transfer system designed to operate between two devices over a local network. It enables a sender to transmit large files (e.g., movies, datasets) to a receiver using:
🔐 Diffie-Hellman key exchange
🔒 AES-CTR-based stream encryption (1MB OTP-style chunks)
✅ SHA-256 for integrity checking
🔁 Retry system for reliable delivery
Users can interact with SecureTransfer Pro via a web-based interface or direct Python scripts, making it flexible for both developers and general users.
How we built it
🛠️ How we built it
We built SecureTransfer Pro using the following technologies and concepts: Python: Core logic, socket communication, encryption Flask: Backend REST API to manage and monitor file transfers AES-CTR (from Cryptography library): For fast, secure keystream generation Threading: Multi-threaded producer/consumer model for high-speed transfer Tailwind CSS + Vanilla JS: Frontend UI for controlling transfers and viewing progress Setup Process: Create a virtual environment:
python -m venv venv && source venv/bin/activate (or venv\Scripts\activate on Windows)
Install requirements:
pip install -r requirements.txt
Run the app:
python app.py
Two devices can run the app on different ports: One acts as the sender (192.168.x.x:5001) The other opens the web interface on 192.168.x.x:5000 and connects to the sender.
Challenges we ran into
⚙️ Thread synchronization: Managing multi-threaded chunk sending and retries without race conditions 🧪 Testing on different devices: Ensuring compatibility when sender/receiver are running on different machines and ports 🌐 Cross-origin issues: CORS had to be configured properly for the frontend to talk to Flask 🔁 Reliable chunk resend logic: Implementing retry queues and ACK/NCK protocol for lost or corrupted chunks Accomplishments that we're proud of 🔐 Built a fully custom encrypted transfer protocol from scratch without relying on existing file-sharing tools 🚀 Achieved high transfer speeds using multithreaded consumers and direct TCP sockets 📦 Transferred files >1GB without corruption or packet loss 🌍 Created a web-based user interface that works seamlessly across devices 🛠️ Enabled modular architecture to support future improvements like resume, compress, or distributed transfer
What we learned
Deepened understanding of symmetric encryption (AES) and how CTR mode works for streaming Gained experience in building networking protocols with socket programming and data validation Mastered techniques in multithreaded file I/O, retry handling, and inter-thread communication Learned how to structure full-stack Python projects with API + frontend + cryptographic logic
What's next for SecureTransfer Pro
🧠 Smart resume support: Resume interrupted transfers without redoing everything 🌐 File compression before transfer: Optional GZIP or ZIP to reduce transfer size 💬 LAN peer discovery: Auto-discover senders in the same network 📁 Multi-file and folder transfer 📊 Detailed analytics: Average speed, dropped chunks, transfer history 📱 Mobile app or PWA version
Built With
- cryptography
- css
- flask
- hashlib
- html
- javascript
- python
- socket
- tailwind
- threading
- werkzeug
![Md. Tyibor Rahman [Whiteant] Md. Tyibor Rahman [Whiteant]](http://d112y698adiu2z.cloudfront.net/photos/production/user_photos/003/458/504/datas/medium.jpeg)
![Md. Tyibor Rahman [Whiteant] Md. Tyibor Rahman [Whiteant]](http://d112y698adiu2z.cloudfront.net/photos/production/user_photos/003/458/504/datas/profile.jpeg)
Log in or sign up for Devpost to join the conversation.