Skip to content

Momoyeyu/CipherVault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CipherVault

中文文档

CipherVault is a secure, efficient cloud storage prototype designed with privacy and performance in mind. It features client-side convergent encryption for secure deduplication, a modern responsive UI, and a robust backend architecture.

Features

  1. Secure Authentication:

    • Robust user registration and login system.
    • Password hashing and CSRF protection.
  2. Convergent Encryption:

    • Files are encrypted using keys derived from their own content.
    • Ensures that identical files generate identical ciphertext, enabling secure deduplication across users without compromising privacy.
  3. Storage Efficiency:

    • Deduplication: Identical files are stored only once on the server, significantly reducing storage costs.
    • Merkle Tree Verification: Ensures file integrity.
  4. Modern Architecture:

    • Modular Backend: Built with Flask Blueprints and Application Factory pattern.
    • Type-Safe ORM: Powered by SQLModel (Pydantic + SQLAlchemy).
    • Robust Database: Uses PostgreSQL for reliable data storage.
    • Automated Migrations: Database schema managed by Alembic.
  5. Responsive UI:

    • Designed with Tailwind CSS for a clean, modern user experience on any device.

Technology Stack

  • Language: Python 3.9+
  • Web Framework: Flask
  • Database: PostgreSQL
  • ORM: SQLModel
  • Migrations: Alembic
  • Frontend: Tailwind CSS, HTML5, JavaScript
  • Security: PyCryptodome (Encryption), Flask-Login (Auth), Flask-WTF (CSRF)

Prerequisites

  • Python 3.9+
  • PostgreSQL: Ensure a PostgreSQL server is running.
    • Default Database Name: cipher-vault
    • Default User/Password: postgres/postgres
    • (Configuration can be changed in .env or config.py)

Quick Start

  1. Clone the repository:

    git clone <repository-url>
    cd CipherVault
  2. Start the Application: We provide a convenience script that handles virtual environment creation, dependency installation, database migration, and server startup automatically.

    chmod +x run.sh
    ./run.sh

    The server will start at http://127.0.0.1:5002.

Manual Setup (Optional)

If you prefer to run commands manually:

  1. Create and Activate Virtual Environment:

    python3 -m venv .venv
    source .venv/bin/activate
  2. Install Dependencies:

    pip install -r requirements.txt
  3. Initialize Database:

    alembic upgrade head
  4. Run Server:

    python run.py

License

This project is licensed under the MIT License.

About

JayCloud: A secure and efficient cloud storage prototype system featuring instant transmission, enhanced Proof of Work (PoW) mechanisms, and encrypted file deduplication.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors