This document is a report on a data encryption and decryption project written by Bhautik Chovatiya for a computer networks course. The report provides an introduction to the need for data encryption, describes the project requirements and design. It also includes screenshots and code snippets demonstrating how the project allows users to encrypt and decrypt data either directly or from files using Caesar cipher encryption. The project aims to provide secure encryption in a simple and user-friendly way.
Mini Project on Data Encryption & Decryption in JAVA
1. DATA ENCRYPTION & DECRYPTION
A REPORT
Submitted by
Mr. Bhautik Chovatiya
Submitted to
Prof. Bansi Kotecha
In partial fulfillment for the subject Computer Networks
of
4TH
SEMESTER
IN
INFORMATION TECHNOLOGY
At
DEPARTMENT OF COMPUTER ENGINEERING
MARWADI UNIVERSITY
RAJKOT
APRIL 2018
2. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 2
Acknowledgment
I would like to thank Prof. Bansi Kotecha , Marwadi University, Rajkot for providing her
precious time to carry out this mini project along with its report and also for their valuable
guidance and useful suggestions, which helped me a lot in completing this report, on time.
Finally , and importantly I would like to express gratitude to my beloved parents for their
blessings and Marwadi University for the successful completion of this report.
3. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 3
ABSTRACT
Data security is a major issue which we are facing today in this digital world of
communication. As we know that today hackers are almost at every corner in search of our
useful data which can be hacked by them for their different purposes. Even the risk gets
doubled when come to the data of any country’s government. So, a system or terminology is
must required to make that data safe forever by any means during communication.
Data protection can be accomplished by changing the original data by any means to some
other un useful data so that if someone gets that data then also it must remain in un useful
bits. This process can be achieved by Encrypting that data by some means of algorithms
which are known to the sender and the similar Decryption algorithms to be known to only
the desired receiver so that it can convert that encrypted data back to the user understandable
form. Today as it is a need to develop such kind of applications which performs the specified
task but along with it should be very much user friendly so that no special skills need to be
required to learn in order to use that application or project.
In the application the user has to select either wants to send something by encrypting or
wants to receive by decrypting . If it wants to send then it have to select source file
previously designed or type some message which is to Encrypt and then transfer. Whereas on
the receiver side again the receiver have to select the file which is to be received from the
sender along with a decryption key to decrypt that message. Decryption key can be selected
either manually if told by the sender or selecting key sent by the sender along with the
encrypted data to avoid further delay in processing the message.
4. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 4
List of Content
Sr. No. Content Page No.
1. Introduction 1
2. Requirement gathering and Analysis of existing similar work 1
3. Design Solution development and validation against original requirement 3
4. Project Implementation 4
5. Conclusion 16
6. Future Work 16
5. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 5
1. Introduction
Data security is a major issue which we are facing today in this digital world of
communication. As we know that today hackers are almost at every corner in search of our
useful data which can be hacked by them for their different purposes. Even the risk gets
doubled when come to the data of any country’s government.
Data protection can be accomplished by changing the original data by any means to some
other un useful data so that if someone gets that data by means of hacking then also it must
remain in un useful bits of data for that person. This process can be achieved by Encrypting
that data by some means of algorithms which are known to the sender and on the other side
the similar Decryption algorithms must be known to only the desired receiver so that it can
convert that encrypted data back to the user understandable form.
Today as it is a need to develop such kind of applications which performs the specified task
but along with it should be very much user friendly so that no special skills need to be
required to learn in order to use that application or project.
This is a Java based project with inbuilt hard disk storage unit as a database. This report
contains in depth demonstration of Data Encryption and Decryption system along with its
working architecture which contains brief introduction, features, prototype, information
about other similar projects, outputs, source code and at last references.
2. Requirement gathering and Analysis of existing similar work
2.1 Name: Data Encryption and Decryption in Java Cryptography
Programming Environment: Linux
Features: Choosing algorithm, Padding, Encryption, uses Block cipher etc.
Link:https://www.veracode.com/blog/research/encryption-and-decryption-java-
cryptography
Explanation: In this project there are plenty of options available for encrypting data like
AES,SHA-1 etc algorithms. It uses complex programming language along with reserved
functions which are designed especially for security kind of purpose.
6. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 6
2.2 Name: Encrypt and Decrypt data using AES algorithm
Programming Environment: Linux
Features: uses AES algorithm for encryption etc.
Link: https://www.quickprogrammingtips.com/java/how-to-encrypt-and-decrypt-data-in-
java-using-aes-algorithm.html
Explanation: This Java project shows how to encrypt data using AES encryption
algorithm. In this project, the KeyGenerator is initialized with a 128 bit secret key. Many
helper classes of java are used for AES encryption such as Cipher (for
encryption/decryption), SecretKey (represents the shared secret key) and KeyGenerator
(generates the shared secret key).
2.3 Name: Encryption and Decryption using DES algorithm
Programming Environment: Linux
Features: uses DES algorithm, uses swing module for GUI.
Link: http://slogix.in/how-to-encrypt-and-decrypt-data-using-des-in-java
Explanation: This project contains modules of swing applets which are used to make user
friendly GUI for simple feel. DES algorithm is very complex and used for very large
secure piece of data.
2.4 Name: Simple Password Encryption & Decryption in C++
Programming Environment: Windows
Features: Uses simple algorithm to encrypt the password.
Link:https://codereview.stackexchange.com/questions/77519/simple-password-
encryption- decryption-in-c
Explanation: This Project includes the concept of random combinations which is used to
generate a random password. After generation of that password ,it is decrypted with the
simple cipher text algorithm so that no other person than the authorized one can be able
to view the details regarding the login forum of the user.
7. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 7
3. Design prototype development & validation against original
requirement
The prototype of Data Encryption & Decryption is shown below which was made on a
chart paper. It describes the flow of the project along with the sample output screens
which will look like after each and every options pressed by any user.
Figure-3.1 Data Encryption and Decryption
4. Project Implementation
4.1 Tool Required and Requirements :
8. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 8
Linux Environment
Latest version of JDK(Java Development Kit)
Terminal (In case of not having other platforms like Eclipse etc)
RAM Minimum 512MB
4.2 Output Screens with code snippet of project:
4.2.1 Main Screen
Figure 4.2.1
Main screen consists of two options as shown in above figure. Choosing option 1 will led to
encryption and option 2 will led to decryption. Code snippet is provided below so that one
can easily understand how to design Main screen. The feel of main menu is kept so simpler
so that if anyone who doesn't have prior knowledge about the concept of encryption and
decryption can also be able to use this application easily.
Code Snippet:
9. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 9
4.2.2 Sub-Screen 1
Figure 4.2.2
10. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 10
This sub menu asks the user for two choices. 1st option provides a input stream which lets
the user to enter the data which is to be encrypted and the 2nd option provides a file stream
buffer which will take the name of the file form which the data needs to be encrypted.
Code Snippet:
4.2.3 Sub- Screen 1.1
Figure 4.2.3
11. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 11
This menu screen performs the encryption on the inputted text by user. It asks to enter a
string and then displays the encrypted text which is ready to share with anyone. .
Code Snippet:
4.2.4 Sub- Screen 1.2
This screen performs the encryption of data which is present in a text file. It asks to enter the
name of text file which the user wants to encrypt & after processing it creates a new file
named as "ENCRYPTED.txt" in the same directory which will contain the encrypted data.
12. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 12
Figure 4.2.4
code snippet:
13. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 13
4.2.5 Sub-Screen 2
Figure 4.2.5
This screen asks the user to choose from the two options given for decrypting the data. 1 for
directly enter the encrypted text and decrypt it and the 2 for enter the file name which
contains the encrypted data.
code snippet:
14. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 14
4.2.6 Sub-Screen 2.1
Figure 4.2.6
This screen performs the decryption of the encrypted data which is entered by user. Here
only one decryption algorithm is used which is Ceaser Cipher text algorithm.
code snippet:
15. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 15
4.2.7 Sub-Screen 2.2
Figure 4.2.7
code snippet:
16. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 16
4.3 Overall flow of project:
MAIN MENU
CHOICE
ENCRYPTION
SUB-MENU 1
CHOICE
ENCRYPT
DATA
DIRECTLY
ENCRYPT
DATA OF
A TEXT FILE
SUB-MENU 2
CHOICE
DECRYPT
DATA
DIRECTLY
DECRYPT DATA
FROM A
ENCRYPTED FILE
DECRYPTION
EXIT
Figure-4.3.1 Flowchart of Project
17. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 17
This project starts with a main page that is shown in Figure-4.2.1. After proceeding further,
two options will pop-up asking about the choice of the user i.e. wants to encrypt the data or
wants to decrypt the data. Now if the user chooses the 1st option then a new screen will
appear which is shown in Figure-4.2.2 This window will again put two new options ,one for
manually entering the text which the user wants to encrypt & the other one which will ask the
user to enter the file name in which the data is stored which is having (.txt) format. These
screens are shown in Figure-4.2.3 and Figure-4.2.4.
The flow chart is shown in figure 4.3.1. Now the second option of main menu i.e. decryption
will get you to the screen which is shown in Figure 4.2.5. It will again ask you to enter your
choice i.e. whether you want to manually enter the encrypted data which you got from the
sender and then generate the original data , and the second option will let you to enter the file
name (.txt) which has been encrypted earlier to convert it again into user understandable
form.
18. DATA ENCRYPTION AND DECRYPTION
Prepared By: Bhautik Chovatiya [91600103130] Page 18
5. Conclusion
It can be concluded that this project works efficiently for offline purpose at any place
provided the requirements for running environment remains same. Users need not to worry
about how the algorithm actually works inside the instruction set performed by the compiler.
6. Future Work
1. In Future, Data Encryption and Decryption system can be updated further which can
provide more secured encryption algorithms like DES , AES etc.
2. This project can be made more attractive and easy to use by implementing
GUI(Graphical User Interface) with the help of many coding platforms like Netbeans
etc.