MediCrypt is a secure, end-to-end encrypted medical records management system that enables patients and doctors to exchange medical reports safely using Hybrid Encryption (AES + RSA).
All encryption and decryption occur client-side, ensuring that even the server or database never sees the unencrypted data.
-
Doctor Key Setup:
- Doctors generate RSA key pairs in the browser.
- Private key is encrypted with a password (AES-GCM).
- Only the encrypted private key and public key are stored in the database.
-
Patient Report Upload:
- Patient encrypts the report using AES-256-GCM.
- The AES key is encrypted using the doctor’s public key (RSA-OAEP).
- Encrypted file and metadata are uploaded to the backend (stored in Cloudinary + MongoDB).
-
Doctor Decryption:
- Doctor decrypts private key using password (AES).
- Decrypts AES key using private RSA key.
- Finally decrypts the medical report locally in the browser.
🛡️ Result: Full end-to-end privacy — only patient and doctor can access the report.
Watch MediCrypt Demo on YouTube
View MediCrypt Presentation on Canva
- Node.js
- Express.js
- MongoDB
- Cloudinary
- React.js (Vite)
- Web Crypto API (for client-side RSA + AES encryption)
- Axios
- AES-256-GCM
- RSA-4096-OAEP
- PBKDF2 key derivation
Hybrid Encryption Steps:
Patient Device
├── Generates AES key → Encrypts report (AES-GCM)
├── Encrypts AES key with Doctor’s Public RSA key
├── Uploads encrypted report + encrypted AES key → Server
Server (Zero Knowledge)
├── Stores encrypted data (no decryption possible)
Doctor Device
├── Retrieves encrypted report + encrypted AES key
├── Decrypts private key with password (AES)
├── Uses private RSA key to decrypt AES key
├── Decrypts and downloads report locally
Team Name : DEVLOK
