File Sharer is a cryptography project that utilizes AES, RSA, and Hash functions to provide a "secure" file sharing service. This project aims to provide a secure platform for sharing files between users by encrypting and storing the file's data through using AES,then encrypting the symmetric key through RSA, and uses Hash for password and user authentication.
The AES algorithm uses a 192-bit key, RSA uses a 2048-bit key.
- Keep file size under 10 MB for a reasonable execution time.
- Generating primes and keys for RSA takes a while
- Need to find a better way to sensitive information
- Clone the repository:
git clone https://github.com/akukerang/filesharer.git
- Create an MySQL server, and run the following queries
CREATE DATABASE FILES;
USE FILES;
CREATE TABLE USERS (
ID INT PRIMARY KEY AUTO_INCREMENT,
USERNAME VARCHAR(256),
PASSWORDHASH VARCHAR(256),
PUBLICKEY VARCHAR(1300),
MASTERKEY VARCHAR(60)
);
CREATE TABLE FILES (
ID INT PRIMARY KEY AUTO_INCREMENT,
FILENAME VARCHAR(256),
FILEDATA MEDIUMBLOB,
USERNAME VARCHAR(256),
DATECREATED DATETIME
);
CREATE TABLE SHARED (
ID INT PRIMARY KEY AUTO_INCREMENT,
FILENAME VARCHAR(256),
FILEDATA LONGBLOB,
SENDER VARCHAR(256),
RECIEVER VARCHAR(256),
MASTERKEY VARCHAR(1000),
DATECREATED DATETIME
);
- Edit the code as needed to link to the SQL server
- Run
run.java
- Start the app by running
run.java
- Create an account, and an account to share to.
- To share a file:
- Login to the sender account
- Press
View Files
- Press
Upload
, and select a file to upload - Ensure file is uploaded by seeing it in the table
- Press
Share
, and enter the recipient's username
- To see shared files:
- Login to the recipient account
- Press
View Shared
- Should see file listed, along with sender's username
- To save the file: Press
Download
, and select directory
- To edit password and keys
- Press
Edit Profile
- Current password must be provided to edit.
- Press