Secure File Sharing System using AES and RSA Hybrid Encryption
A file-sharing app that combines AES for speed and RSA for secure key exchange.
Sharing a sensitive file by email or a public link exposes it to anyone who intercepts the message or gets the link. Strong encryption fixes this, but the two main kinds each have a weakness: symmetric encryption such as AES is fast but needs a secret key that must be shared safely, while asymmetric encryption such as RSA solves key sharing but is slow for large files. This project combines them in a secure file-sharing application.
Each file is encrypted with a fresh random AES key, which is fast for any file size. That AES key is then encrypted with the recipient's RSA public key, so only the recipient's private key can recover it. Both the encrypted file and the wrapped key are stored, and the server never sees the plain file. A Spring Boot back end handles registration, key generation, storage and access control, with sharing rules such as expiry dates and download limits, and an audit log of who accessed what. The web interface lets users upload, share and download, with decryption performed only for authorised recipients. The write-up covers key storage, authenticated encryption modes and common mistakes such as reusing an initialization vector.
You will learn practical cryptography, secure key management and secure API design. The Project Reference Guide explains the design and threat model, and the Reference Implementation includes the application and tests.