ashiswin / SecStore

A secure storage platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SecStore Design Project

How it Works

SecStore is a secure and fast cloud storage solution.

The SecStore splits a file into N chunks and uploads one chunk to each of the N servers. The servers will then perform a server-to-server file syncing to ensure every server has the completed file.

When downloading occurs, the client will perform a ping on every server and choose the best server to download from.

In this way, we have many servers with backups of the files to ensure that users do not lose their data in the event of a server failure.

Getting Started

Simply clone this repository and you're good to go. The noteworthy code files are as follows:

* src/client/CP1Client.java - Implementation of CP1
* src/client/CP2Client.java - Implementation of CP2
* src/common/Packet.java - List of all packets used in communication
* src/common/Protocol.java - List of all supported communication protocols

Prerequisites

You will need the following installed on your system:

* Java SE 9
* JavaFX

JavaFX is required in order to run the Design Challenge GUI application.

Deployment

To run the system, you first need to start the server. All runnable files are contained within the outputs folder. You can start the server using the following command:

cd outputs
java -jar Server.jar

For the clients, the syntax is similar. CP1 implements RSA encryption while CP2 implements AES encryption. You can execute them with:

java -jar CP<1|2>Client.jar <file to upload>

Finally, for the JavaFX application, you will need to load the project into either Eclipse or IntelliJ with the Eclipse Project Integration plugin. From there you can run Main.java, which will launch the main user interface.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

A secure storage platform

License:MIT License


Languages

Language:Java 99.9%Language:CSS 0.1%