Secure File Sharing App Using AES Encryption (Python + Flask) | Tour2Tech
Home / Projects / Secure File Sharing (AES)
LIMITED OFFER
Get up to ₹1,000 OFF
Use coupon MYProject when you book via WhatsApp/Call. We don’t sell online.
Python • PyCryptodome • Flask/Tkinter • SQLite

Secure File Sharing App — End-to-End AES-256 Encryption

Encrypt before upload. Share via secure links/QR. Decrypt only with the right key. Clean UI, audit logs, and per-file keys for serious privacy.

  • AES-256 encryption with random key + IV per file
  • Password hashing (salted) & token-based access
  • Secure links & optional QR for key handoff
Delivery in 3–5 days • Pan-India support
*Demo video placeholder. Replace with your link.
1. Introduction

The Secure File Sharing App Using AES Encryption delivers end-to-end protection by encrypting files locally with AES-256 before upload. Only recipients with the correct key can decrypt. The app provides a simple portal to upload → encrypt → share → decrypt, eliminating unauthorized access risks found in traditional methods. Ideal for personal, academic, and enterprise use.

2. Existing System vs Proposed System
Existing System
  • No true end-to-end encryption in email/cloud sharing.
  • Risk of interception and unauthorized file access.
  • No robust audit trail or key control.
Proposed System
  • Local AES-256 encryption with random key + IV.
  • Per-file keys; tokenized secure links or QR.
  • SQLite metadata, audit logs, optional auth wall.
  • Cross-platform Flask/Tkinter UI.
3. Working
  1. User Authentication: Register/login to access the portal.
  2. File Upload: Choose a file for encryption.
  3. Encryption: AES-256 with random key & IV; key never stored in plaintext.
  4. Sharing: App generates an encrypted blob + secure download link.
  5. Decryption: Recipient supplies the secret key to decrypt.
  6. Logging: Access and share events recorded for auditing.
4. Technology Stack
  • Language: Python
  • Libraries: PyCryptodome, Flask, SQLite3, os, base64
  • Algorithm: AES-256 (CBC/GCM)
  • Backend: SQLite3 for file metadata & users
  • Frontend: Flask web UI or Tkinter desktop UI
  • Security: Random keys, salted hashing, token-based access
5. Modules
User Authentication

Registration/login & password hashing.

  • Salted SHA-256
  • Session tokens
Encryption

AES-256 key & IV per file.

  • Secure RNG
  • Auth tag (GCM)
Decryption

Key-verified access.

  • Integrity checks
  • Error handling
File Management

Upload/download & metadata.

  • SQLite indices
  • Expiry (optional)
Sharing

Secure links/QR codes.

  • Tokenized URLs
  • Out-of-band key share
Audit & Logs

Traceability & reports.

  • Access history
  • Admin summaries
6. Advantages
  • Strong AES-256 end-to-end encryption.
  • No third-party access to keys or files.
  • Simple UI for non-technical users.
  • Extendable to cloud storage integrations.
  • Prevents leaks during transfer and at rest.
7. Applications
  • Secure corporate data exchange.
  • Confidential sharing in healthcare/banking/education.
  • Personal private document transfer.
  • Integration with enterprise file management.
Python Integration Sketch (Flask + PyCryptodome)
from flask import Flask, request, send_file
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
import base64, sqlite3, os

app = Flask(__name__)

def pad(b):  # for CBC example; prefer GCM for AEAD
    padlen = 16 - (len(b) % 16)
    return b + bytes([padlen])*padlen

def unpad(b):
    return b[:-b[-1]]

def encrypt_file(path):
    key = get_random_bytes(32)     # 256-bit
    iv  = get_random_bytes(16)
    cipher = AES.new(key, AES.MODE_CBC, iv=iv)
    with open(path, "rb") as f: pt = f.read()
    ct = cipher.encrypt(pad(pt))
    return key, iv, ct

def decrypt_bytes(key, iv, ct):
    cipher = AES.new(key, AES.MODE_CBC, iv=iv)
    pt = unpad(cipher.decrypt(ct))
    return pt

# Upload -> encrypt -> store blob/metadata -> return link (token)
# Download -> require token + key -> decrypt -> stream file
              
Delivery includes full Python source (AES CBC/GCM), Flask/Tkinter UI, tokenized share links, optional QR, SQLite schema, and documentation.
What You Get
ItemIncludedNotes
Python Source CodePyCryptodome + Flask/Tkinter
AES-256 Encryption/DecryptionRandom key & IV per file
Secure Links / QRTokenized downloads
SQLite BackendUsers, files, logs
Demo VideoSetup & working walkthrough
Report & PPTCollege-format templates
SupportInstallation + viva Q&A (1 month)

FAQs — Secure File Sharing (AES)

By default, keys are shown to the uploader and not stored in plaintext. You can enable sealed server-side storage if required.

The link alone can’t decrypt the file. The attacker still needs the secret key. You can also set link expiry and download limits.

Yes. We can plug in S3/Drive after encrypting locally, so cloud providers never see plaintext.

Need a privacy-first sharing app?

Get the Secure File Sharing App with code, demo, docs, and support.

WhatsApp Us Now
Shopping Cart
Scroll to Top
Open chat
Need help in Admission?
Hello! 👋 Welcome to Tour2Tech Academy!

We’re here to help you succeed in your engineering journey with:

🌟 Final Year Projects
🎯 College Admission Consultancy
📚 Career Guidance and Skill-Building Courses

How can we assist you today? Whether you need help with a project, are looking for career guidance, or want to know more about our services, we’re just a message away! 😊