Skip to content

file stored on app with using AES encryption and decrypt at download. user is authenticate using JWT token before storing. file is checked for anti virus.

Notifications You must be signed in to change notification settings

jacobPRO123/secure_file_sharing

Repository files navigation

Secure File Sharing 📁🔒

Secure File Sharing

Welcome to the Secure File Sharing repository! This application provides a robust solution for sharing files securely over the internet. With built-in AES encryption, user authentication via JWT tokens, and virus scanning, your files remain safe and protected at all times.

Table of Contents

Features

  • AES Encryption: Files are encrypted using AES-256, ensuring that only authorized users can access the data.
  • JWT Authentication: Users must authenticate with a JWT token before storing or accessing files.
  • Virus Scanning: Each file is checked for viruses to enhance security.
  • User-Friendly Interface: Designed with usability in mind for seamless file sharing.
  • Cross-Platform Support: Works on various operating systems, making it accessible to everyone.

Technologies Used

  • AES: Advanced Encryption Standard for secure file encryption.
  • JWT: JSON Web Tokens for user authentication.
  • Node.js: Server-side platform for building the application.
  • Express: Web framework for Node.js to create the API.
  • MongoDB: NoSQL database for storing user data and file metadata.
  • Multer: Middleware for handling file uploads.
  • ClamAV: Antivirus engine for scanning files.

Installation

To get started with Secure File Sharing, follow these steps:

  1. Clone the repository:

    git clone https://github.com/jacobPRO123/secure_file_sharing.git
  2. Navigate to the project directory:

    cd secure_file_sharing
  3. Install dependencies:

    npm install
  4. Set up environment variables: Create a .env file in the root directory and add the following variables:

    PORT=3000
    JWT_SECRET=your_jwt_secret
    MONGODB_URI=your_mongodb_uri
    
  5. Start the application:

    npm start

Usage

Once the application is running, you can interact with it via the API or the front-end interface.

API Endpoints

  • POST /api/auth/login: Authenticate a user and receive a JWT token.
  • POST /api/files/upload: Upload a file after authentication.
  • GET /api/files/:id: Download a file using its ID.

For more detailed usage, refer to the API Documentation.

How It Works

File Upload Process

  1. User Authentication: Users log in using their credentials. If successful, they receive a JWT token.
  2. File Upload: The user uploads a file, which is then encrypted using AES-256.
  3. Virus Scanning: The file is scanned for viruses using ClamAV.
  4. Storage: If the file passes the virus scan, it is stored in MongoDB with its metadata.

File Download Process

  1. User Authentication: The user must provide a valid JWT token to access files.
  2. File Retrieval: The application retrieves the encrypted file from the database.
  3. Decryption: The file is decrypted using AES-256 before being sent to the user.

Contributing

We welcome contributions to enhance the Secure File Sharing application. If you want to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature/YourFeature
  3. Make your changes and commit them:
    git commit -m "Add your message here"
  4. Push to your branch:
    git push origin feature/YourFeature
  5. Create a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

For any questions or support, feel free to reach out:

For the latest releases, visit here. You can download the latest version and execute it to start sharing files securely.

Conclusion

Secure File Sharing is a powerful tool for anyone looking to share files safely and efficiently. With strong encryption, user authentication, and virus scanning, you can trust that your files are secure. Explore the repository, contribute, and enjoy secure file sharing!

Secure File Sharing

For further updates, check the "Releases" section.

About

file stored on app with using AES encryption and decrypt at download. user is authenticate using JWT token before storing. file is checked for anti virus.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages