Secure File Sharing System
Backend / Security / Flask
A web-based file sharing platform designed around data privacy. Files are encrypted on the client before they reach the server, so the server never has access to unencrypted content, and recipients decrypt on their own machine at download.
- Year
- 2024
- Role
- Backend developer
- Source
- Public repository
Technologies
- Python
- Flask
- Cryptography
- Web Security
- JavaScript
The problem
Most file-sharing services can read what you upload. For genuinely sensitive material, "we promise not to look" is a policy, not a guarantee.
The solution
Move encryption to the client. The server stores ciphertext it cannot decrypt, and decryption happens on the recipient's machine — so server compromise does not expose file contents.
Architecture
How it is put together.
Client encryption
The file is encrypted in the browser before upload.
Upload
Only ciphertext is transmitted to and stored by the server.
Share
The recipient is given access to the encrypted object.
Client decryption
Decryption happens on the recipient's own system.
Key features
What it actually does.
- Client-side encryption before upload
- Server stores only ciphertext
- Recipient-side decryption at download
Engineering challenges
The parts that were hard.
Key handling is the whole design
End-to-end encryption is easy until you ask how the recipient gets the key. That question shapes every other decision in the system.
Outcomes
What came out of it.
Qualitative outcomes only — no invented benchmarks or metrics.
A file-sharing service where the host cannot read the files
A working demonstration of client-side encryption in the browser
Next project
3D Point Cloud Study in Python
Reproduced a point cloud study in Python, generalised to run on any point cloud.
Let’s build
Want something like this for your business?
Tell me the problem and I will come back with an architecture, a scope and a timeline.