This project implements a secure file transfer system using AES encryption in Java. It leverages the concepts of Interfaces, Abstraction, and Inheritance for better code management, making the system modular and easily extensible.
- Secure File Transfer: Utilizes AES encryption to ensure the security of file transfers.
- Modular Design: Implements Interfaces and Abstract classes to ensure a clean and manageable codebase.
- Extensible: Designed with extensibility in mind, allowing for easy updates and addition of new features.
- Java Development Kit (JDK): JDK 8 or higher is required to run this project.
- Integrated Development Environment (IDE): An IDE such as IntelliJ IDEA, Eclipse, or NetBeans is recommended for development, although not strictly necessary.
- Understanding of Cryptography: Basic knowledge of symmetric encryption and key management is beneficial.
-
Install JDK: Ensure that you have a compatible version of the JDK installed. You can download the latest version from Oracle's official website.
-
Clone the Repository: Clone the project repository to your local machine using the following command:
git clone Rohan-ingle/java_project
-
Prepare Client and Server: Before running the application, ensure that the necessary files are in place:
- On the Client Side: Place the
FileSender.java
,FileOperator.java
,Encryptable.java
,AESEncryptor.java
and any files you wish to transfer in your client directory. Ensure theRandomKeyGenerator.java
has been run at least once to generate thekey.txt
file. - On the Server Side: Ensure the
FileReceiver.java
,FileOperator.java
,Encryptable.java
,AESEncryptor.java
is ready in your server directory. Thekey.txt
file generated by the client should be copied here if the server is on a different machine.
- On the Client Side: Place the
-
Open and Run:
- Server: Open the project in your IDE, navigate to the
FileReceiver.java
, and run it to start the server. - Client: Run the
FileSender.java
class to start sending files to your server.
- Server: Open the project in your IDE, navigate to the
To use this project for file transfer:
- Generate Encryption Key: Run the
RandomKeyGenerator
class to generate a new encryption key. - Start the File Receiver: Run the
FileReceiver
class on the receiving end. - Send Files: Use the
FileSender
class to send files securely to the receiver.
Contributions are welcome! For major changes, please open an issue first to discuss what you would like to change.