Secure File Transfer Using Aes & Rsa Algorithms
Secure File Transfer Using Aes & Rsa Algorithms
ALGORITHMS
The Project Report is submitted in partial fulfilment of the
requirements for the award of the degree of
Master of computer Application
Submitted by:
JANYAVULA SAI KUMAR
2385351038
Submitted to
2024-2025
B.V.RAJU COLLEGE
Re-Accredited by NAAC B+ Grade
(Affiliated to Adikavi Nannaya University)
DEPARTMENT OF MCA
Vishnupur :: Bhimavaram
CERTIFICATE
This is to certify that this project entitled “SECURE FILE TRANSFER USING AES & RSA
ALGORITHMS” submitted in partial fulfillment of the degree of MASTER OF COMPUTER
APPLICATIONS to Adikavi Nannaya University from 7I TECHNOLOGIES, Hyderabad through
B.V. Raju College, done by Mr. JANYAVULA SAI KUMAR Regd. No. 2385351038 is an authentic
work carried out by him during the Academic Year 2024-2025 at under my guidance. The matter
embodied in this project work has not been submitted earlier for award of any degree or diploma to
The first person I would like to thank Dr. I. R. Krishnam Raju, Principal, B V Raju
College, Bhimavaram. His wide knowledge and logical way of thinking have made a deep
impression on me. His understanding, encouragement and personal guidance have provided
the basis for this thesis. He is source of inspiration for innovation ideas and his kind support
is well known to all his students and colleagues.
I wish to thank my guide Dr. V. Bhaskar Murthy, Professor & HOD, Dept of
MCA for his support and valuable suggestions for the successful completion of this project.
2385351038
DECLARATION
This is to certify that the project report entitled “SECURE FILE TRANSFER USING AES
& RSA ALGORITHMS” is done by me is an authentic work carried out for the partial
fulfilment of the requirements for the award of the degree of Mater of Computer
Application under the guidance of Mr. Dr. V. BHASKARA MURTHY, Professor &
HOD, Dept. of MCA. The matter embodied in this project work has been submitted earlier
for award of any degree or diploma to the best of my knowledge and belief.
2385351038
INDEX
Chapter Page No
1.Introduction 1-2
2.Literature Survey 3
4.2 Modules 12
5.3 Methodology 29
9.Bibliography 47-49
LIST OF FIGURES
The project titled "Secure File Transfer Using RSA and AES Algorithms" aims to develop a secure,
efficient, and user-friendly system for transferring files over a network. It uses a hybrid cryptographic
approach by integrating AES, a symmetric encryption algorithm, and RSA, an asymmetric encryption
algorithm, to ensure both the confidentiality of the file and the secure transmission of the encryption key.
In this system, the file content is encrypted using AES for fast and strong encryption, while the AES key is
securely encrypted using RSA before being shared with the receiver. The receiver then decrypts the AES
key using their private RSA key and uses it to decrypt the actual file. This dual-layered encryption model
ensures that the file can be transferred safely even over an insecure or public network.
1.2 Purpose
The main purpose of this project is to provide a secure method for transferring files that protects
sensitive data from unauthorized access, interception, and tampering. By using a combination of symmetric
and asymmetric encryption, the system ensures that only the intended recipient can access the original file.
The project demonstrates how cryptographic algorithms can be practically implemented to address real-
world security challenges in data transmission. It is designed to be reliable, scalable, and applicable in
various fields such as corporate communication, cloud storage, government data sharing, and academic
document transfer.
1.3 Scope
This project covers the design, development, and implementation of a secure file transfer system using
hybrid cryptography. The scope includes:
AES-based file encryption and decryption.
RSA-based secure key exchange mechanism.
A basic interface for users to upload, encrypt, download, and decrypt files.
Protection against data breaches during file transmission.
Demonstration of end-to-end encryption concepts using modern cryptographic standards.
1
1.4 Motivation
The motivation behind this project comes from the increasing number of cybersecurity threats and data
breaches that occur during digital communication and file transfer. As businesses and individuals rely more
on online platforms to exchange sensitive information, the need for secure communication tools has
become essential. Existing methods like traditional FTP or unencrypted email attachments are often not
secure enough for transmitting confidential data. This project aims to bridge that gap by offering a simple
yet powerful solution using proven cryptographic algorithms. Understanding and implementing secure file
transfer also provides valuable hands-on experience in cryptography, which is a core area of modern
computer science and cybersecurity.
2
2.LITERATURE SURVEY
Over the years, various approaches and technologies have been developed to ensure secure file transfer
across networks. With the growing dependence on digital communication, researchers and developers have
placed significant focus on cryptographic methods to protect data from unauthorized access and
cyberattacks. This literature survey reviews existing techniques and technologies related to secure file
transmission, with a focus on symmetric and asymmetric encryption algorithms.
Traditional file transfer protocols such as FTP (File Transfer Protocol) and HTTP were not designed
with strong security features, making them vulnerable to threats like eavesdropping and data tampering. In
response to these issues, secure variants like SFTP (SSH File Transfer Protocol) and FTPS (FTP Secure)
were introduced, offering encrypted channels for communication. However, these methods primarily focus
on the secure transmission channel, rather than the encryption of the file contents themselves.
Several studies have shown that combining symmetric and asymmetric encryption algorithms can
significantly enhance the security of data transfer systems. AES (Advanced Encryption Standard),
introduced by the National Institute of Standards and Technology (NIST), has become the most widely
used symmetric encryption algorithm due to its strength, speed, and efficiency in encrypting large volumes
of data. On the other hand, RSA, developed by Rivest, Shamir, and Adleman, remains a cornerstone of
asymmetric encryption, offering a secure means of key distribution and digital signatures.
Researchers have explored hybrid encryption systems that use AES for data encryption and RSA for key
exchange to combine the advantages of both methods. In such systems, the main file is encrypted using
AES, ensuring fast and secure data protection, while the AES key itself is encrypted using RSA, which
eliminates the need to share the key over insecure channels. This model has been successfully implemented
in secure email systems, cloud storage solutions, and confidential document transmission applications.
In academic works, hybrid cryptosystems have consistently shown improved performance in terms of
both security and efficiency. A common finding across multiple papers is that RSA alone is
computationally intensive for large data encryption, whereas AES performs better for bulk data processing.
Therefore, the combination of RSA and AES is seen as a practical solution that balances computational
load and cryptographic strength.
3
4
3.SYSTEM ANALYSIS
In the current digital landscape, several methods and protocols exist for transferring files between users
or systems. Traditional file transfer systems such as FTP (File Transfer Protocol), HTTP, and email
attachments are still widely used. However, these methods often lack strong built-in security measures,
making them vulnerable to various threats like data interception, unauthorized access, and tampering
during transmission.
To overcome the limitations of basic file transfer protocols, more secure alternatives such as SFTP
(Secure File Transfer Protocol) and FTPS (FTP Secure) have been developed. These protocols add a layer
of encryption to the transmission process by using SSL/TLS or SSH to secure the communication channel.
While these methods do provide improved security, they focus on protecting the communication channel
rather than encrypting the actual file content. Once the connection is established, the data is transmitted in
encrypted form, but if the channel is compromised or the server is breached, the files can still be at risk.
Some file-sharing platforms and cloud services such as Google Drive or Dropbox offer basic
encryption, but users have limited control over how the data is encrypted and who can access the
decryption keys. In many cases, encryption is handled server-side, meaning the service provider has access
to the original data, which may pose a privacy concern.
Additionally, some systems use password-protected ZIP files or simple encryption tools to secure files
before transmission. However, these methods are often weak, lacking robust encryption standards or secure
key management. Passwords can be guessed or cracked, and without proper key exchange mechanisms, the
overall security remains compromised.
Most existing systems also do not implement hybrid encryption models, which combine the speed of
symmetric algorithms and the security of asymmetric algorithms. As a result, they either suffer from
performance issues (if only asymmetric encryption is used) or lack secure key exchange (if only symmetric
encryption is used).
5
Disadvantages of Existing System
6
3.2 PROPOSED SYSTEM
The proposed system is designed to provide a secure way to transfer files over a network by using a
combination of two strong encryption algorithms: AES and RSA. In this system, the file is first encrypted
using AES (Advanced Encryption Standard), which is fast and secure for handling large amounts of
data. Then, the AES key used to encrypt the file is itself encrypted using RSA (Rivest–Shamir–
Adleman), which is an asymmetric encryption algorithm that ensures the key is shared safely.
This method is known as hybrid encryption because it uses both symmetric and asymmetric techniques.
AES provides speed and efficiency, while RSA ensures secure key exchange. The receiver first decrypts
the AES key using their RSA private key, and then uses that key to decrypt the actual file.
This approach makes sure that:
Only the intended receiver can access the file.
Even if someone intercepts the file during transfer, they cannot read it without the decryption key.
The system is fast, secure, and suitable for real-world applications.
The proposed system improves upon traditional file transfer methods by offering end-to-end
encryption, secure key management, and better protection against hacking and data theft. It is useful
for securely sharing sensitive documents, personal files, business data, or any information that should
remain private.
Uses strong encryption (AES) to protect file contents from unauthorized access.
Encrypts the AES key with RSA, ensuring secure key sharing between sender and receiver.
Combines the speed of AES and the security of RSA, making the system fast and safe.
Provides end-to-end encryption, keeping the file secure during the entire transfer process.
Prevents data theft even if the file is intercepted during transmission.
Ensures that only the intended receiver can decrypt and access the file.
Protects sensitive and confidential data effectively.
Easy to use with a simple process for uploading, encrypting, and downloading files.
Scalable and suitable for personal, academic, and professional use.
Can be extended in the future with extra features like digital signatures and file integrity checks.
7
3.3 FEASIBILITY STUDY
Preliminary investigation examines project feasibility, the likelihood the system will be useful to the
organization. The main objective of the feasibility study is to test the Technical, Operational and
Economical feasibility for adding new modules and debugging old running system. All systems are feasible
if they are given unlimited resources and infinite time. There are aspects in the feasibility study portion of
the preliminary investigation:
Technical Feasibility
Operation Feasibility
The computerized system takes care of the present existing system’s data flow and procedures
completely and should generate all the reports of the manual system besides a host of other management
reports. It should be built as a web-based application with separate web server and database server. This is
required as the activities are spread throughout the organization customer wants a centralized database.
Further some of the linked transactions take place in different locations.
The technical issue usually raised during the feasibility stage of the investigation includes the
following:
Does the necessary technology exist to do what is suggested?
Do the proposed equipment’s have the technical capacity to hold the data required to use the new
system?
Will the proposed system provide adequate response to inquiries, regardless of the number or
location of users?
3.3.3 Social Feasibility
Social feasibility refers to how acceptable and useful the proposed system will be to the people who use
it. In this project, the secure file transfer system using RSA and AES algorithms is designed to be user-
friendly, reliable, and easy to adopt by individuals and organizations.
8
The system ensures the safety and privacy of important files, which is a growing concern in today's digital
world. Users from various backgrounds—such as students, teachers, office workers, and business
professionals—can easily understand and operate the system without needing deep technical knowledge.
3.4 SYSTEM REQUIREMENTS SPECIFICATION
2.File Upload
Users should be able to upload files that they want to send securely.
6.File Transfer
The encrypted file along with the encrypted AES key should be sent to the receiver.
8.File Decryption
After decrypting the AES key, the receiver should be able to decrypt and access the original file.
9
3.4.2 Nonfunctional Requirements
Non-functional requirements define the overall qualities or attributes of the resulting System.Non-
functional requirements place restrictions on the product being developed, the development process, and
specify external constraints that the product must meet. Examples of NFR include safety, security,
usability, reliability and performance Requirements. Project management issues (costs, time, and schedule)
are often considered as non-functional requirements.
Performance requirements
Requirements about resources required, response time, transaction rates, throughput, benchmark
specifications or anything else having to do with performance. In this project, Data publisher (or data
holder, who collects data from record owner ex. Alice and bob) and data miner or the public, called the
data recipient and record owners like patients and doctors.
Modifiability
Requirements about the effort required to make changes in the software. Often, the
measurement is personnel effort (person- months).
Portability
The effort required to move the software to a different target platform. The measurement is
most commonly person-months or % of modules that need changing.
Reliability
Requirements about how often the software fails. The measurement is often expressed in
MTBF (mean time between failures). The definition of a failure must be clear. Also, don't
confuse reliability with availability which is quite a different kind of requirement. Be sure to
specify the consequences of software failure, how to protect from failure, a strategy for error
detection, and a strategy for correction.
Usability
Requirements about how difficult it will be to learn and operate the system. The requirements
are often expressed in learning time or similar metrics.
10
3.4.3 HARDWARE REQUIREMENTS:
➢ Processor : Intel i3
➢ RAM : 16 GB (min)
➢ Hard Disk : 512 GB
➢ Input Devices : Standard keyboard and mouse
11
12
4.SYSTEM DESIGN
Architecture flow:
Below architecture diagram represents mainly flow of requests from users to database through servers.
In this scenario overall system is designed in three tires separately using three layers called presentation
layer, business logic layer and data link layer. This project was developed using 3-tire architecture.
User
SERVER
Request Response
Dat
a
Bas
e
13
4.2 Modules
1.ADMIN
In this application the admin is one of the Modules and here the admin can directly login with the
application. And the admin can upload the files and view uploaded files and view request and send
response.
2.USER
In this application the user should register with the application then only he can access into his home page.
Here the user can view all the files and request for the file to download the files.
Here using that file-key the user can able to download the file.
UML diagrams are important because they help visualize the structure and behavior of a system. They
make complex software easier to understand by breaking it into manageable parts. For example, a class
diagram can show the relationships between different classes, which helps in planning and organizing code
before writing it.
They also improve communication among team members. Instead of explaining ideas verbally or with
code alone, developers can use diagrams to clearly illustrate how a system is supposed to work. This is
especially helpful in large teams or when handing off a project to someone new.
Using UML can reveal design flaws early, saving time and effort. Spotting a problematic dependency or
a missing interaction in a diagram is much easier than finding it after the code is written.
14
4.3.1 Use case Diagram
A use case diagram is a type of UML (Unified Modeling Language) diagram that shows the interactions
between users (called actors) and a system. It represents the functional requirements of a system by
illustrating the various ways users can use the system.
login
uploadFiles
viewFiles
admin
viewRequestand Accept
logout
register
login
user
viewFiles
download
logout
15
4.3.2 Class Diagram
A class diagram is a type of UML diagram that represents the structure of a system by showing its
classes, attributes, methods, and the relationships between them. It acts like a blueprint of the system,
helping developers understand what objects exist, what data they hold, and what operations they can
perform. Class diagrams also illustrate how classes are connected, such as through inheritance or
associations. They are commonly used in object-oriented design to plan and document the system's
structure before or during development.
user
name
admin email
mobile
username
address
password
username
password
login()
uploadFiles()
register()
viewFiles()
login()
viewRequest()
viewFiles()
logout()
requestFile()
downloadFiles()
logout()
16
4.3.3 Sequence Diagram
A sequence diagram in Unified Modeling Language (UML) is a kind of interaction diagram that shows
how processes operate with one another and in what order. It is a construct of a Message Sequence Chart.
Sequence diagrams are sometimes called event diagrams, event scenarios, and timing diagram.
login
uploadFile
viewFiles
register
login
viewFiles
sendRequest
viewRequestAndResponse
downloadFiles
logout logout
17
4.3.4 Collaboration Diagram
A collaboration diagram, also known as a communication diagram, is a type of UML diagram that
shows how objects interact with each other to perform a specific task. It focuses on the relationships
and message flow between objects, rather than the sequence of actions. In a collaboration diagram,
objects are connected by links, and the messages they send to each other are numbered to show the
order of communication. This diagram is useful for understanding the dynamic behavior of a system
and how different parts work together to achieve a goal. It is especially helpful in designing and
analyzing object-oriented systems.
11: logout
10: logout
admin
user 4: register
5: login
6: viewFiles
7: sendRequest
9: downloadFiles
1: login
2: uploadFile
3: viewFiles
8: viewRequestAndResponse
databas
e
16
4.4 DATABASE DESIGN
The data pertaining to proposed system is voluminous that a careful design of the database must
proceed before storing the data in the database. A database management system Provides flexibility in the
storage and retrieval of data bad production of information. The DBMS is a bridge between the application
programs, which determines what data are needed and how they are processed, and the operating system of
the computer, which is Responsible for placing data on the magnetic storage devices.
4.4.1 Normalization
Normalization theory is built around the concept of normal forms. A relation is said to be in
particular normal form if it satisfies a certain specified set of constraints.
First Normal form
A relation R is in first normal form if and only if all underlying domains contained atomic values
only.
Second Normal form
A relation R is said to be in second normal form if and only if it is in first normal form and every
non-key attribute is fully dependent on the primary key.
Third Normal form
A relation R is said to be in third normal form if and only if it is in second normal form and every
non key attribute is non transitively depend on the primary key.
20
4.5 INPUT AND OUTPUT DESIGN
Input design is a part of overall system design. The main objective during the input design is as given
below:
To produce a cost-effective method of input.
To achieve the highest possible level of accuracy.
To ensure that the input is acceptable and understood by the user.
INPUT STAGES:
The main input stages can be listed as below:
Data recording
Data transcription
Data conversion
Data verification
Data control
Data transmission
Data validation
Data correction
INPUT TYPES:
It is necessary to determine the various types of inputs. Inputs can be categorized as follows:
External inputs, which are prime inputs for the system.
Internal inputs, which are user communications with the system.
Operational, which are computer department’s communications to the system?
Interactive, which are inputs entered during a dialogue.
INPUT MEDIA:
At this stage choice has to be made about the input media. To conclude about the input media
consideration has to be given to;
Type of input
Flexibility of format
Speed
Accuracy
Verification methods
Rejection rates
21
Ease of correction
Storage and handling requirements
Security
Easy to use
Portability
Keeping in view the above description of the input types and input media, it can be said that most of the
inputs are of the form of internal and interactive.
As Input data is to be the directly keyed in by the user, the keyboard can be considered to be the most
suitable input device.
OUTPUT DESIGN:
In general, are:
External Outputs whose destination is outside the organization.
Internal Outputs whose destination is within organization and they are the User’s main interface
with the computer. Outputs from computer systems are required primarily to communicate the
results of processing to users. They are also used to provide a permanent copy of the results for later
consultation. The various types of outputs
Operational outputs whose use is purely with in the computer department.
Interface outputs, which involve the user in communicating directly with the system.
OUTPUT DEFINITION
OUTPUT MEDIA:
22
In the next stage it is to be decided that which medium is the most appropriate for the output. The main
considerations when deciding about the output media are:
The suitability for the device to the particular application.
The need for a hard copy.
The response time required.
The location of the users
The software and hardware available.
Keeping in view the above description the project is to have outputs mainly coming under the category
of internal outputs.The outputs were needed to be generated as a hard copy and as well as queries to be
viewed on the screen. Keeping in view these outputs, the format for the output is taken from the outputs,
which are currently being obtained after manual processing. The standard printer is to be used as output
media for hard copies.
23
5.SYSTEM IMPLEMENTATION
Java Introduction
Initially the language was called as “oak” but it was renamed as “java” in 1995.The primary motivation
of this language was the need for a platform-independent (i.e. architecture neutral) language that could be
used to create software to be embedded in various consumer electronic devices.
Java is a programmer’s language
Java is cohesive and consistent
Except for those constraint imposed by the Internet environment. Java gives the
programmer, full control
Finally, Java is to Internet Programming where c was to System Programming.
Java has had a profound effect on the Internet. This is because; java expands the Universe of objects that
can move about freely in Cyberspace. In a network, two categories of objects are transmitted between the
server and the personal computer. They are passive information and Dynamic active programs. in the areas
of Security and probability. But Java addresses these concerns and by doing so, has opened the door to an
exciting new form of program called the Applet.
An application is a program that runs on our computer under the operating system of that computer. It is
more or less like one creating using C or C++. Java’s ability to create Applets makes it important. An
Applet I saw application, designed to be transmitted over the Internet and executed by a Java-compatible
web browser. An applet I actually a tiny Java program, dynamically downloaded across the network, just
like an image. But the difference is, it is an intelligent program, not just a media file. It can be react to the
user input and dynamically change.
24
Java Architecture
Java architecture provides a portable, robust, high performing environment for development. Java
provides portability by compiling the byte codes for the Java Virtual Machine, which is then interpreted on
each platform by the run-time environment. Java is a dynamic system, able to load code when needed from
a machine in the same room or across the planet.
Compilation of code
When you compile the code, the Java compiler creates machine code (called byte code) for a hypothetical
machine called Java Virtual Machine (JVM). The JVM is supposed t executed the byte code. The JVM is
created for the overcoming the issue of probability. The code is written and compiled for one machine and
interpreted on all machines. This machine is called Java Virtual Machine.
During run-time the Java interpreter tricks the byte code file into thinking that it is running on a Java
Virtual Machine. In reality this could be an Intel Pentium windows 95 or sun SPARCstation running
Solaris or Apple Macintosh running system and all could receive code from any computer through internet
and run the Applets.
Simple:
Java was designed to be easy for the Professional programmer to learn and to use effectively. If you are
an experienced C++ Programmer. Learning Java will orient features of C++. Most of the confusing
concepts from C++ are either left out of Java or implemented in a cleaner, more approachable manner. In
Java there are a small number of clearly defined ways to accomplish a given task.
Object oriented
Java was not designed to be source-code compatible with any other language. This allowed the Java team
the freedom to design with a blank state. One outcome of this was a clean usable, pragmatic approach to
objects. The object model in Java is simple and easy to extend, while simple types, such as integers, are
kept as high-performance non-objects.
Robust
The multi-platform environment of the web places extraordinary demands on a program, because the
program must execute reliably in a variety of systems. The ability to create robust programs. Was given a
high priority in the design of Java. Java is strictly typed language; it checks your code at compile time and
runtime.
Java virtually eliminates the problems of memory management and deal location, which is completely
automatic. In a well-written Java program, all run-time errors can and should be managed by your program.
25
HTML
Hypertext Markup Language (HTML), the languages of the world wide web (WWW), allows users to
produces web pages that included text, graphics and pointer to other web pages (Hyperlinks).
HTML is not a programming language but it is an application of ISO Standard 8879, SGML (Standard
Generalized Markup Language), but specialized to hypertext and adapted to the Web. The idea behind
Hypertext one point to another point. We can navigate through the information based on out interest and
preference. A markup language is simply a series of items enclosed within the elements should be
displayed.
Hyperlinks are underlined or emphasized works that load to other documents or some portions of the same
document. Html can be used to display any type of document on the host computer, which can be
geographically at a different location. It is a versatile language and can be used on any platform or desktop
HTML provides are not case-sensitive. Using graphics, fonts, different sizes, color, etc. can enhance the
presentation of the document.
Basic Html Tags:
<! -- --> Specific Comments.
<A>………</A> Creates Hypertext links.
<B>………</B> Creates hypertext links.
<Big>……. </Big> Formats text in large-font
<Body>……. </Body> contains all tags and text in the Html-document
<Center>……</Center> Creates Text
<DD>………. </DD> Definition of a term.
<TABLE>……</TABLE> creates table
<Td>………. </Td> indicates table data in a table.
<Tr>………. </Tr> designates a table row
<Th>………. </Th> creates a heading in a table.
JAVA SCRIPT
JavaScript is a compact, object-based scripting language for developing client and server internet
applications. Netscape Navigator 2.0 interprets JavaScript statements embedded directly in an HTML page.
and Livewire enables you to create server-based applications similar to common gateway interface(cgi)
programs.
In a client application for Navigator, JavaScript statements embedded in an HTML Page can recognize and
26
respond to user events such as mouse clicks form Input, and page navigation.
JSP/Servlets
A Servlet Is a generic server extension. a Java class that can be loaded dynamically to expand
the functionality of a server. Servlets are commonly used with web servers. Where they can take
the place CGI scripts.
A servlet is similar to proprietary server extension, except that it runs inside a Java Virtual
Machine (JVM) on the server, so it is safe and portable Servlets operate solely within the domain
of the server. Unlike CGI and Fast CGI, which use multiple processes to handle separate program
or separate requests, separate threads within web server process handle all servlets. This means
that servlets are all efficient and scalable.
Attractiveness of Servlets:
They are many features of servlets that make them easy and attractive to tuse these include:
One of the great advantages of the servlet API is protocol independent. It assumes nothing
about:
The protocol being used to transmit on the net
How it is loaded
The server environment it will be running in
These quantities are important, because it allows the Servlet API to be embedded in
many different kinds of servers. There are other advantages to the servelt API as
well These include:
27
It’s extensible-you can inherit all your functionality from the base classes made
available to you
It’s simple small, and easy to use.
Features of Servlets:
Servlets are persistent. Servlet are loaded only by the web server and can maintain
services between requests.
Servlets are fast. Since servlets only need to be l\loaded once, they offer much better
performance over their CGI counterparts.
Servlets are platform independent.
Servlets are extensible Java is a robust, object-oriented programming language,
which easily can be extended to suit your needs.
Servlets are secure
Servlets are used with a variety of client.
JDBC
Any relational database. One can write a single program using the JDBC API, and the JDBC is a Java
Api for executing SQL, Statements (As a point of interest JDBC is trademarked name and is not an
acronym; nevertheless, Jdbc is often thought of as standing for Java Database Connectivity. It consists of a
set of classes and interfaces written in the Java Programming language. JDBC provides a standard API for
tool/database developers and makes it possible to write database applications using a pure Java API Using
JDBC, it is easy to send SQL statements to virtually program will be able to send SQL. statements to the
appropriate database. The Combination of Java and JDBC lets a programmer writes it once and run it
anywhere.
28
JDBC-Net pure java driver Native-protocol pure Java driver
An individual database system is accessed via a specific JDBC driver that implements the java.
SQL. Driver interface. Drivers exist for nearly all-popular RDBMS systems, through few are
available for free. Sun bundles a free JDBC-ODBC bridge driver with the JDK to allow access to a
standard ODBC, data sources, such as a Microsoft Access database, Sun advises against using the
bridge driver for anything other than development and very limited development. JDBC drivers are
available for most database platforms, from a number of vendors and in a number of different
flavors. There are four driver categories
29
Oracle
Oracle is a relational database management system, which organizes data in the form of tables. Oracle
is one of many database servers based on RDBMS model, which manages a seer of data that attends three
specific things-data structures, data integrity and data manipulation. With oracle cooperative server
technology, we can realize the benefits of open, relational systems for all the applications. Oracle makes
efficient use of all systems resources, on all hardware architecture; to deliver unmatched performance,
price performance and scalability. Any DBMS to be called as RDBMS has to satisfy Dr.E.F. Codd’s rules.
30
5.3 Methodology
The secure file transfer system uses a hybrid encryption approach that combines the AES (Advanced
Encryption Standard) and RSA (Rivest–Shamir–Adleman) algorithms to ensure both data security and
performance efficiency.
AES is a symmetric encryption algorithm used to encrypt the actual file. It is chosen for its speed and
efficiency in handling large amounts of data. However, since symmetric encryption requires both parties to
have the same key, securely sharing the AES key becomes a challenge.
To solve this, RSA, an asymmetric encryption algorithm, is used to encrypt the AES key. RSA uses a
public key for encryption and a private key for decryption, ensuring that only the intended recipient can
decrypt the AES key.
Algorithm Steps:
1. The sender generates a random AES key.
2. The file is encrypted using AES with that key.
3. The AES key is then encrypted using the receiver’s RSA public key.
4. The sender transmits both the encrypted file and the encrypted AES key to the receiver.
5. The receiver decrypts the AES key using their RSA private key.
6. The file is then decrypted using the recovered AES key.
33
</div>
</body>
</html>
34
%>
<font color="green" size="5"><%=msg%></font>
<%
}
%>
<table style="color: green">
<tr><h1>REGISTRATION HERE</h1></tr>
<TR></TR> <TR></TR> <TR></TR> <TR></TR> <TR></TR> <TR></TR> <TR></TR>
<TR></TR>
<tr><th>Name</tH><td><input type="text" name="name" required=""></td></tr>
<TR></TR> <TR></TR>
<tr><th>Email</tH><td><input type="email" name="email" required=""></td></tr>
<TR></TR> <TR></TR>
<tr><th>Mobile</tH><td><input type="number" name="mobile"
required=""/></td></tr>
<TR></TR> <TR></TR>
<tr><th>Address</tH><td><input type="text" name="address" required=""/></td></tr>
<TR></TR> <TR></TR>
<tr><th>UserName</tH><td><input type="text" name="uname"
required=""></td></tr>
<TR></TR> <TR></TR>
<tr><th>Password</tH><td><input type="password" name="pwd"
required=""></td></tr>
<TR></TR> <TR></TR>
<tr><td></td><td><input type="submit" value="REGISTER" > <input type="reset"
value="RESET" ></td></tr>
</table>
</form>
</div>
</center>
</div>
</body>
</html>
35
Sample code for Admin home page:
36
Sample code for file upload:
</head>
<body>
<div id="wrapper">
<div id="header">
<h1>ONLINE SECURE FILE TRANSFER</h1>
</div>
<div id="nav">
<ul>
<li class="first"><a href="Admin_Home.jsp"><em>H</em>OME</a></li>
<li><a href="UploadFile.jsp"><em>U</em>pload File</a></li>
<li><a href="ViewFiles.jsp"><em>V</em>iew Files</a></li>
<li><a href="ViewRequest.jsp"><em>V</em>iew Request</a></li>
<li><a href="Admin.jsp"><em>L</em>ogout</a></li>
</ul>
</div>
<div id="body">
<center>
<div style="width:600px;height:400px;border:1px solid white;">
<form action="Upload" method="post" enctype="multipart/form-data">
<h2 style="margin-top:40px;">upload here</h2>
<table style="margin-top:50px;">
<tr><th>UPLoad File</th></tr>
<tr><th>File Name</th><td><input type="text" name="fname" required=""/></td></tr>
<tr><th>Choose File</th><td><input type="file" name="file" required=""/></td></tr>
<tr><th></th><td><input type="submit" value="Upload"/><input type="reset"
value="Reset"/></td></tr>
</table>
</form>
</div>
</center>
</div>
</body>
</html>
%>
<tr><td><a href="ViewFiles.jsp">BACK</a></td> </tr>
</table>
<%
}%>
</div>
</center>
</div>
</body>
</html>
39
6. Screens & Reports
6.1 Screens
Home page:
41
Admin Home page:
42
6.2 Reports
View files page:
43
7.Testing
7.1 Testing Concepts
Software testing is the process of evaluating a software application to ensure it works correctly, meets
requirements, and is free of defects. It helps improve the quality, reliability, and performance of the
software.
There are two main types of testing: manual testing and automated testing. In manual testing, the tester
checks the software by executing test cases manually. In automated testing, testing tools are used to run
tests automatically.
Common testing concepts include:
Unit Testing: Testing individual components or functions of the software.
Integration Testing: Checking how different modules or services work together.
System Testing: Testing the complete and integrated software system.
Acceptance Testing: Ensuring the software meets user or client requirements.
Black Box Testing: Testing without knowledge of the internal code; focused on inputs and outputs.
White Box Testing: Testing with knowledge of the internal logic and structure of the code.
In order to make sure that the system does not have errors, the different levels of testing strategies that
are applied at differing phases of software development are:
Unit Testing:
Unit Testing is done on individual modules as they are completed and become executable. It is confined
only to the designer's requirements.
Black Box Testing:
In this strategy some test cases are generated as input conditions that fully execute all functional
requirements for the program. This testing has been used to find errors in the following categories:
Incorrect or missing functions
Interface errors
Errors in data structure or external database access
Performance errors
Initialization and termination errors.
In this testing only the output is checked for correctness. The logical flow of the data is not checked.
44
White Box testing:
In this the test cases are generated on the logic of each module by drawing flow graphs of that module
and logical decisions are tested on all the cases. It has been used to generate the test cases in the following
cases:
Guarantee that all independent paths have been Executed.
Execute all logical decisions on their true and false Sides.
Execute all loops at their boundaries and within their operational bounds
Execute internal data structures to ensure their validity.
Integrating Testing:
Integration testing ensures that software and subsystems work together a whole. It tests the interface of
all the modules to make sure that the modules behave properly when integrated together.
System Testing:
Involves in-house testing of the entire system before delivery to the user. Its aim is to satisfy the user the
system meets all requirements of the client's specifications.
Acceptance Testing:
It is a pre-delivery testing in which entire system is tested at client's site on real world data to find
errors.
Test Approach:
Bottom-up approach
Top-down approach
Bottom-up Approach:
Testing can be performed starting from smallest and lowest level modules and proceeding one at a time.
For each module in bottom up testing a short program executes the module and provides the needed data so
that the module is asked to perform the way it will when embed within the larger system. When bottom
level modules are tested attention turns to those on the next level that use the lower-level ones they are
tested individually and then linked with the previously examined lower-level modules.
45
Top-down approach:
This type of testing starts from upper-level modules. Since the detailed activities usually performed in
the lower-level routines are not provided stubs are written. A stub is a module shell called by upper-level
module and that when reached properly will return a message to the calling module indicating that proper
interaction occurred. No attempt is made to verify the correctness of the lower-level module.
Validation:
The system has been tested and implemented successfully and thus ensured that all the requirements as
listed in the software requirements specification are completely fulfilled.
46
7.3 Testing Report
47
8.Conclusion and Future work
8.1 Conclusion
The implementation of secure file transfer using RSA and AES algorithms effectively addresses the
critical need for data confidentiality and protection during transmission. AES, being a fast and efficient
symmetric encryption algorithm, is ideal for encrypting large files, while RSA, an asymmetric encryption
algorithm, ensures the secure exchange of the AES key between sender and receiver. This hybrid
encryption approach combines the strengths of both algorithms, offering a practical solution for real-world
file transfer scenarios. It ensures that even if the data is intercepted, it cannot be accessed without the
proper decryption keys. The project demonstrates the importance of cryptography in securing digital
communication and shows how modern encryption standards can be applied to build robust and secure
systems. Overall, this method enhances the trust, integrity, and safety of data exchange across networks.
For future work, several enhancements can be made to improve the efficiency, usability, and security of
the secure file transfer system. One important area is the implementation of digital signatures, which would
allow both sender and receiver to verify the authenticity of files and ensure data integrity. This would
prevent unauthorized changes to the file content and confirm the identity of the sender.
Another improvement could involve building a more user-friendly interface, making the system
accessible to non-technical users while maintaining strong security in the background. Adding support for
file transfer logging and audit trails would also enhance system transparency and accountability.
From a performance perspective, the system could be optimized to handle large-scale file transfers,
possibly using compression techniques before encryption to reduce file size and transfer time. Multi-
threading or parallel processing can also be introduced to speed up the encryption and decryption
processes.
Additionally, integrating the system with cloud storage services like Google Drive or Dropbox would
allow secure file sharing over cloud platforms. For wider adoption, mobile and web-based versions of the
application can be developed to enable secure file transfer from any device or location. As cyber threats
continue to evolve, research into advanced encryption algorithms and post-quantum cryptography can be
explored to future-proof the system against emerging threats. Furthermore, integrating AI-based threat
48
detection could help monitor and prevent suspicious file transfers in real-time.
9.Bibiliography
9.1 Books
1. “UML Distilled: A Brief Guide to the Standard Object Modelling Language” by Martin Fowler
3. “The Unified Modelling Language User Guide” by Grady Booch, James Rumbaugh, and Ivar
4. “Head First Object-Oriented Analysis and Design” by Brett McLaughlin, Gary Pollice & David
West
8. “Programming Principles in Java: Architecting & Engineering Software” by Stephen Gilbert & Bill
McCarty
49
9.2 Web References
50
9.3 References
1. Sierra, K., & Bates, B. (2005). Head First Java (2nd ed.). O’Reilly Media.
2. Schildt, H. (2018). Java: The Complete Reference (11th ed.). McGraw-Hill Education.
3. Bloch, J. (2018). Effective Java (3rd ed.). Addison-Wesley.
4. Hook, D. (2005). Beginning Cryptography with Java. Worx.
5. Stallings, W. (2017). Cryptography and Network Security: Principles and Practice (7th ed.).
Pearson.
6. Goetz, B. (2006). Java Concurrency in Practice. Addison-Wesley.
7. Oaks, S. (2001). Java Security (2nd ed.). O’Reilly Media.
8. Harold, E. R. (2004). Java Network Programming (3rd ed.). O’Reilly Media.
9. Baeldung. (2021). Java AES Encryption and Decryption. Retrieved from
https://www.baeldung.com/java-aes-encryption-decryption
10. Stack Overflow. (2012). Encrypting AES key with RSA public key. Retrieved from
https://stackoverflow.com/questions/9658921/encrypting-aes-key-with-rsa-public-key
11. CodeJava. (2019). File Encryption and Decryption in Java – Simple Example. Retrieved from
https://www.codejava.net/coding/file-encryption-and-decryption-simple-example
12. GitHub. (n.d.). Secure File Transfer System Using RSA and AES Encryption. Retrieved from
https://github.com/brunocamps/SecureFileTransfer
13. GitHub. (n.d.). Secure File Sharing Using Hybrid Cryptography. Retrieved from
https://github.com/tejack3098/Secure-File-Sharing-Using-Hybrid-Cryptography
14. YouTube. (2021). AES and RSA Encryption in Java – Secure Communication Example. Retrieved
from https://www.youtube.com/watch?v=WPeiI6ISo7U
49
49
35
3
35
4
35
5
35
6
35
7
39
41