You are on page 1of 36

ANDROID IMAGE STEGANOGRAPHY APPLICATION

ABSTRACT

The aim of project is developing an android application for “ADNROID


IMAGE STEGANOGRAPHY APPLICATION”. It’s developed by using to Front
– end as Android. Crypto Steganography is the art of hiding the fact that
communication is taking place, by hiding information in other information. Many
different carrier file formats can be used, but digital images are the most popular
because of their frequency on the internet. For hiding secret information in images,
there exists a large variety of steganography techniques some are more complex than
others and all of them have respective strong and weak points.

Different applications may require absolute invisibility of the secret


information, while others require a large secret message to be hidden. This project
report intends to give an overview of image steganography, its uses and techniques. It
also attempts to identify the requirements of a good steganography algorithm and
briefly reflects on which steganography techniques are more suitable for which
applications.

Steganography become more important as more people join the cyberspace


revolution. Steganography is the art of concealing information in ways that prevents
the detection of hidden messages. Steganography include an array of secret
communication methods that hide the message from being seen or discovered.

Steganography is the practice of hiding private or sensitive information within


something that appears to be nothing out to the usual. Steganography is often
confused with cryptology because the two are similar in the way that they both are
used to protect important information. The difference between two is that
steganography involves hiding information so it appears that no information is hidden
at all. If a person or persons views the object that the information is hidden inside of
he or she will have no idea that there is any hidden information, therefore the person
will not attempt to decrypt the information.

1
INTRODUCTION

OVERVIEW OF THE PROJECT

This Android based steganography application is used to encrypt the


confidential file into the image. This Application is developed by using Android as
frontend and MYSQL as backend language. In This application the user can create an
account before login. After user verification the login page will redirect to the
application dashboard. Dashboard contains encryption, encryption file folder,
decryption, message modules. The system user can enter the encryption file name and
also can select the confidential file and image. After selection the system user should
enter the password to download the confidential file. After the above step the file was
encrypted and store into the folder module. The folder module is used to manage the
encrypted file.

The user also can decrypt the encrypted file by using the decrypt module.
Module the system user can select the encrypted file then the user should enter the
passcode. This decrypt page will redirect to the validate page. In this page the system
user should you enter the given confidential file password to download data. After
password verification the validate page will redirect to the download page in this page
the system music and download the confidential data by clicking the download
button. The another main module of the system is message module. In this message
module the system user can easily send the encrypted message to the another system
user. The another user can easily decrypt the message by using the decrypt module.

During the decryption the system user should I enter the correct email and
password to decrypt file. Because this is Android based steganography system this
steganography system validates the correct image pixels with the existing upload
image pixels. If both pixels match equally the encrypted file will automatically
decrypt by the system.

2
SYSTEM SPECIFICATION

HARDWARE SPECIFICATION

PROCESSOR Intel® Pentium® CPU P6200 @ 2-13GHz

RAM 2.00GB (1.74GB usable).

HARD DISK DRIVE 320GB

CACHE MEMORY 2MB

WAN MODEM, LAN, DATA CARD

SOFTWARE SPECIFICATION

OPERATING SYSTEM Windows 8 (x64 bit)

GRAPHICS Intel® HD Graphics 1366*768(Resolution).

FRONT-END Android (Java)

BACK-END MySQL

DESIGNING TOOL Android Studio

3
SOFTWARE FEATURES

OVERVIEW OF THE FRONT – END

Android is an open source and Linux-based Operating System for mobile devices


such as smartphones and tablet computers. Android was developed by the Open
Handset Alliance, led by Google, and other companies.

Android offers a unified approach to application development for mobile devices


which means developers need only develop for Android, and their applications should
be able to run on different devices powered by Android.

The first beta version of the Android Software Development Kit (SDK) was
released by Google in 2007 where as the first commercial version, Android 1.0, was
released in September 2008.

On June 27, 2012, at the Google I/O conference, Google announced the next
Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the
primary aim of improving the user interface, both in terms of functionality and
performance.

The source code for Android is available under free and open source software
licenses. Google publishes most of the code under the Apache License version 2.0 and
the rest, Linux kernel changes, under the GNU General Public License version 2.

ANDROID APPLICATIONS

Android applications are usually developed in the Java language using the
Android Software Development Kit.

Once developed, Android applications can be packaged easily and sold out either
through a store such as Google Play, SlideME, Opera Mobile Store, Mobango, F-
droid and the Amazon Appstore.

Android powers hundreds of millions of mobile devices in more than 190


countries around the world. It's the largest installed base of any mobile platform and
growing fast. Every day more than 1 million new Android devices are activated
worldwide.

4
ANDROID LIBRARIES

This category encompasses those Java-based libraries that are specific to Android
development. Examples of libraries in this category include the application
framework libraries in addition to those that facilitate user interface building, graphics
drawing and database access. A summary of some key core Android libraries
available to the Android developer is as follows −

 android.app − Provides access to the application model and is the cornerstone of


all Android applications.
 android.content − Facilitates content access, publishing and messaging between
applications and application components.
 android.database − Used to access data published by content providers and
includes SQLite database management classes.
 android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
 android.os − Provides applications with access to standard operating system
services including messages, system services and inter-process communication.
 android.text − Used to render and manipulate text on a device display.
 android.view − The fundamental building blocks of application user interfaces.
 android.widget − A rich collection of pre-built user interface components such as
buttons, labels, list views, layout managers, radio buttons etc.
 android.webkit − A set of classes intended to allow web-browsing capabilities to
be built into applications.

Having covered the Java-based core libraries in the Android runtime, it is now
time to turn our attention to the C/C++ based libraries contained in this layer of the
Android software stack.

5
OVERVIEW OF THE BACK-END –
MYSQL

‘MYSQL’ the most popular ‘open source’ SQL database management system is
developed, distributed and supported by ‘MYSQL ‘AB’.’MYSQL AB’ is a
commercial company, founded by the MYSQL developers that build its business by
providing services around the ‘MYSQL’ database management system.

‘MYSQL’ is a database management system. A database is a structured


collection of a data. It may be anything from a simple shopping list to a picture
gallery or the vast amount of information in the corporate network.

To add, access, and process data store in a computer database, you need a
database management system such as ‘MYSQL ‘server. Since computer are very
good at handling large amount of data, database, management systems play a central
role in computing, as stand-alone utilities or as part of other application.

 MYSQL is Database server.


 MYSQL is ideal for both small and large application.
 MYSQL support standard SQL.
 MYSQL complies on a number of platforms.
 MYSQL is free to download and use.

ADVANTAGES OF MYSQL DATABASE SERVER

The ‘MYSQL’ database server is very fast, reliable and easy to use. If that is
what you are looking for, you should give it a try. ‘MYSQL’ server also has a
practical set features developed in close cooperation with users.

You can find a performance comparison of ‘MYSQL’ server with other


database managers on our benchmark page. ’MYSQL’ was originally developed to
handle large database much faster than existing solution and has been successfully
use in highly demanding production environments for several years.

6
SYSTEM ANALYSIS

System analysis is a process of gathering and interpreting facts, diagnosing


problems and the information to recommend improvements on the system. It is a
problem solving activity that requires intensive communication between the system
users and system developers. System analysis or study is an important phase of any
system development process.

The system is studied to the minutest detail and analyzed. The system analyst
plays the role of the interrogator and dwells deep into the working of the present
system. The system is viewed as a whole and the input to the system are identified.
The outputs from the organizations are traced to the various processes. 

System analysis is concerned with becoming aware of the problem, identifying


the relevant and decisional variables, analyzing and synthesizing the various factors
and determining an optimal or at least a satisfactory solution or program of action.

3.1EXISTING SYSTEM
 In this existing system the confidential mail only verified by the text
password.
 Image processing based cryptography system is not implemented in the
existing project
 Simple mail transfer protocol makes more errors while email sending
 The system implementation cost is too high to share confidential data
 Existing system application user interface is developed by using only HTML
and CSS
 User interface and user experience is more complicated in the existing system.
 The admin control panel is not implemented in the existing system
 Report generation takes more time to view the project data in correct format

3.2PROPOSED SYSTEM
 In proposed system the confidential Mail is completely verified by the serial
images
 Image processing based cryptography system is implemented in the proposed
project

7
 Simple mail transfer protocol errors are completely debugged
 Proposed system application user interface is developed by using HTML5 and
css3 technology with bootstrap
 The system implementation cost is very low to share confidential file
 User interface and user experience is more user friendly in proposed system
 The admin control panel is implemented in the proposed system to access all
of the modules in this project
 Report generation takes less time to view the project data in correct format

8
4.1MODULE DESCRIPTION

USER
The user module is used to manage the user details. This module is also
containing the user registration and login form. This module is used to validate the
user email and password before login. In this module the user can update the
username and the password.
ENCRYPTION
Encryption is one of the main module of the system. In this module the system
user can encrypt the confidential data file using the image. The user should enter the
filename, select the confidential file, select the image and type the password before
encryption. During the encryption the system will generate the passcode to the user.
FOLDER
The folder module is used to manage and store the encrypted data file. In this
module the system user can view the all kind of encrypted data file and also can delete
the unwanted encrypted data file by using the delete option.
DECRYPTION
The decryption is also one of the important and main module of the system. In
this module the system user can decrypt the confidential data file. During the
decryption process the user should select the encrypted file before decryption. After
that the user should enter the system generated passcode and select the image file for
the decryption. The decryption module validates the passcode and the image. If
passcode and image is match the decryption file will redirect to the validate form. In
this form the user should enter the given password for decrypt data file. After
password authentication the file will decrypt and download page will open. The user
can download the confidential data file by clicking the download button.
MESSAGE
The message module is used to send the encrypted data file to another system
user. This is featured module of the system. Because the system user can share the
encrypted data file through the same system. This feature is easily used to access the
another user encrypted data file.
REPORT
Report module is used to generate the various kind of reports. The user can
generate the encrypted file and message report by using this report module.

9
4.2ER DIAGRAM

An entity-relationship (ER) diagram is a specialized graphic that illustrates


the relationships between entities in a database. ER diagrams often use symbols to
represent three different types of information.

Boxes are commonly used to represent entities. Diamonds are normally used
to represent relationships and ovals are used to represent attributes.

An entity-relationship diagram (ERD) is a data modelling technique that


graphically illustrates an information system’s entities and the relationships
between those entities.

An ERD is a conceptual and representational model of data used to represent


the entity framework infrastructure.

The elements of an ERD are:

 Entities
 Relationships
 Attributes

Steps involved in creating an ERD include:

 Identifying and defining the entities


 Determining all interactions between the entities
 Analyzing the nature of interactions/determining the cardinality of the
relationships
 Creating the ERD

10
UID
FID
Name
USER Name
Email
1
File
Password 1
Add FILES
Image
1

Password

Passcode

Send

1
COMPOSE Date
CID

UID STATUS
FID

11
4.3DATA FLOW DIAGRAM

A data-flow diagram (DFD) is a graphical representation of the "flow" of data


through an information system. DFDs can also be used for the visualization of data
processing (structured design). On a DFD, data items flow from an external data
source or an internal data store to an internal data store or an external data sink, via an
internal process. The purpose of a DFD is:

 To show the scope and boundaries of a system


 To show that the whole system has been considered
 May be used as a communications tool between a systems analyst and any
person who plays a part in the system
 To act as the starting point for redesigning a system

The representations used in order to frame a data flow diagram are:

The circle represents the process. It shows the pair of the

Process that transforms input to output.

The arrow represents the graphical flow into or out of a


process.

The store is used to model a collection of data packets at rest.

The terminator represents external entities with system


Communication.

12
DFD LEVEL 0

Request
Login Intelligent
User Image
User
Processing
Response

13
DFD LEVEL 1

Request

User/Admin User Profile User Table

Response
Request

Encryption Encrypt Table

Response
Response

Request

Folder Folder
Response

Request
Decrypt
Decryption Table
Response

Request
Message Message
Table
Response

Report

14
4.4 DATABASE DESIGN
Table design is the process of the producing a detailed data model of a
database. This logical data model contains all the needed logical and physical design
choices and physical storage parameters needed to generate a design in a data
definition language, which can then be used to create a database fully attributed data
model contains detailed attributes for each.

The term database design can be used to describe many different parts
of the design of an overall database system. Principally, and most correctly, it can be
thought of as the logical design of the vase data structure used to store the data. In the
relation model these are the table and views. In an object database the entities and
relationship map directly to object classes and named relationships.

TABLE NAME: USER

COLUMN DATA SIZE CONSTRAINT DESCRIPTION


NAME TYPE

UID Int 10 Primary Key User ID

Name Varchar 30 Not Null User Name

Email Varchar 30 Unique Email

Password Varchar 30 Not Null Password

Date Date 15 Not Null Date

15
TABLE NAME: FILES

COLUMN DATA SIZE CONSTRAINT DESCRIPTION


NAME TYPE

FID Int 10 Primary Key File ID

Fname Varchar 30 Not Null File Name

UID Int 10 Foreign Key User ID

File Varchar 100 Not Null File

Image Varchar 100 Not Null Image

Password Varchar 30 Not Null Password

Passcode Varchar 10 Not Null Passcode

Notes Varchar 150 Not Null Notes

Date Date 15 Not Null Date

TABLE NAME: COMPOSE

COLUMN DATA SIZE CONSTRAINT DESCRIPTION


NAME TYPE

CID Int 10 Primary Key Compose ID

SID Int 10 Foreign Key Sender ID

RID Int 10 Foreign Key Receiver ID

FID Int 10 Foreign Key File ID

Date Date 15 Not Null Date

16
4.5 INPUT DESIGN

Input design is the process of converting user-originated inputs to a computer


understandable format. Input design is one of the most expensive phases of the
operation of computerized system and is often the major problem of a system. A
large number of problems with a system can usually be tracked back to fault input
design and method. Every moment of input design should be analyzed and designed
with utmost care.
The system takes input from the users, processes it and produces an output.
Input design is linked that ties the information system into the world of its users. The
system should be user-friendly to gain appropriate information to the user.

17
4.6 OUTPUT DESIGN

Output design generally refers to the results and information that are
generated by the system for many end-users; it should be understandable with the
enhanced format.
When designing output, system analysis accomplishes more things like, to
determine what applications, websites or documents whether blocked or allowed.
Allowing should be in various options. The output is designed in such a way that it is
attractive, convenient and informative. Forms are designed in VB.NET with various
features, which make the console output more pleasing. As the outputs are the most
important sources of information to the users, better design should improve the
system’s relationships with others and also will help in decision-making.

18
5.SYSTEM TESTING AND IMPLEMENTATION
System testing of software or hardware is testing conducted on a complete,
integrated system to evaluate the system’s compliance with its specified requirements.
System testing falls within the scope of black box testing. System testing is performed
on the entire system in the context of functional requirements specification. System
tests not only the design but also the behaviour and even the believed expectations of
the customer.
My project has undergone the following testing procedures to ensure its correctness.
1. UNIT TESTING
2. VALIDATION TESTING
3. OUTPUT TESTING
4. INTEGRATION TESTING
UNIT TESTING
Unit tests perform basic test at component level and test a specific business
process, application, and /or system configuration. Unit tests ensure that each path of
a business process performs accurately to the documented specifications, functionality
and contains clearly defined inputs and expected results.
VALIDATION TESTING
Validation succeeds when the developed system functions as per the
requirement of the customer. Application validation is achieved through a series of
black box that demonstrate the conformity with the requirements. Deviations or errors
in this steps are corrected.

OUTPUT TESTING

Various outputs has been generated by the system. The system generated
output and the desk-calculated values have been compared. All the output is perfect as
the company desires. It begins with the low volumes of transactions based on live
tone. The volume is increased until the maximum level for each transaction type is
reached. The total system is also tested for recovery and fall back, after various major
failures to ensure that no data are lost during the emergency time.
INTEGRATION TESTING
Integration tests are done to test integrated application components were
individually satisfactory, as shown by successful unit testing; the combination of
components is correct and consistent.

19
SYSTEM IMPLEMENTATION
System implementation is the stage of the project when the theoretical design
is turned into a working system. If the implementation stage is not correctly planned
and controlled, it can be choice. The following are the main stages in the
implementation:
 Planning
 Training
 Maintenance

PLANNING
Planning plays an important role in the implementation. The planning should
face any practical problems of controlling various activities of people out their own
data processing department.
TRAINING
Successful implementation needs trained computer staff. So some staff can
teach them about the computer implementation, which only then becomes a well-
designed system.
MAINTENANCE
Maintenance involves recovery on crash such as the backups and the end user
should be given only executable format of the system.
When the initial design was done to the system, the client was consulted for
the acceptance of the design so that further proceedings of the system development
can be carried on. After the development of the system a demonstration was given to
them about the working of the system. The aim of the system illustration was to
identify any malfunction of the system.

After the management of the system was approved the system implemented in
the concern, initially, the system was run parallel with the existing manual system.
The system has been tested with live data and has proved to be error free and user
friendly.
Implementation is the process of converting a new or revised system design
into an operational one when the initial design was done by the system; a
demonstration was given to the end user on the working system.

20
This process uses to verify and identify any logical mess working of the
system by feeding various combinations of test data. After the approval of the system
by both end users and management the system was implemented.

System implementation is made up of many activities. The major activities are


as follows.

Coding

Coding is the process whereby the physical design specifications created by


the analysis team turned into working computer code by the programming team.

Testing

Once the coding process is beginning and proceed in parallel, as each program
module can be tested.

Installation

Installation is the process during which the current system is replaced by the
new system. This includes conversion of existing data, software, and documentation
and work procedures to those consistent with the new system.

Documentation

It results from the installation process, user guides provides the information on
how they use the system and its flow.

21
6. SCOPE FOR FUTURE ENHANCEMENT

Every application has its own merits and demerits. The project has covered
almost all the requirements. Further requirements and improvements can easily be done
since the coding is mainly structured or modular in nature. Improvements can be
appended by changing the existing modules or adding new modules. One important
development that can be added to the project in the future is billing details between two
dates.

 In future, the “Intelligent Image Processing Using Cryptography For Secret


Communication” web application will be converted into the android application.
Most of the people are using android operating system. After conversion, the android
application is helps to manage the application in smart way.

22
7. CONCLUSION

The project report entitled "ADNROID IMAGE STEGANOGRAPHY


APPLICATION " has come to its final stage. The system has been developed with
much care that it is free of errors and at the same time it is efficient and less time
consuming. The important thing is that the system is robust. I have tried our level best
to make the site as dynamic as possible.

The software is tested with all possible samples of data and performance of the
system proves to be much more efficient, accurate and user friendly. The software is
more interactive, user friendly and menu driven. Hence the user can easily navigate
through the system. The end-user can access to the at least knowledge of computers
and they find it easy to key in data and understand the error message.

This system is flexible and modification if any can do done without much
difficulty. The software is more attractive and interactive. This system tries maximum
to avoid typing by the user, for most of the entities.

23
BIBLIOGRAPHY

REFERENCE BOOK

The following books containing useful facts or specially organized information

 Android Programming: Pushing the Limits Kindle Edition by Erik Hellman

 Creating Dynamic UI with Android Fragments Kindle Edition by Jim Wilson

 Android Programming: Pushing the Limits Kindle Edition by Erik Hellman

REFERENCE WEBSITE

The following websites containing useful facts or specially organized information

 http://www.tutorialspoint.com/android/

 http://developer.android.com/training/index.html

 http://www.javatpoint.com/android-tutorial

24
APPENDICES
A.SCREEN SHOTS

25
26
27
28
29
30
31
B.SAMPLE CODING
Sample Code
public class EncryModel {
private int id;
private String file;
private String name;
// constructor
public EncryModel(int id, String name, String file) {
this.id = id;
this.file = validate(file);
this.name = name;
}
// validate the Password, and reformat is necessary
private String validate(String password) {
32
// creating StringBuilder for both the cases
StringBuilder case1 = new StringBuilder("+91");
StringBuilder case2 = new StringBuilder("");
// check if the string already has a "+"
if (password.charAt(0) != '+') {
for (int i = 0; i < password.length(); i++) {
// remove any spaces or "-"
if (password.charAt(i) != '-' && password.charAt(i) != ' ') {
case1.append(password.charAt(i));
}
}
return case1.toString();
} else {
for (int i = 0; i < password.length(); i++) {
// remove any spaces or "-"
if (password.charAt(i) != '-' || password.charAt(i) != ' ') {
case2.append(password.charAt(i));
}
}
return case2.toString();
}
}
public String getFile() {
return file;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

33
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
public class DbHelper extends SQLiteOpenHelper {
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "compose";
// Country table name
private static final String TABLE_NAME= "encryption";
// Country Table Columns names
private static final String KEY_ID = "id";
private static final String NAME = "Name";
private static final String FILE = "File";

public DbHelper(Context context){


super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

// create the table for the first time


String CREATE_COUNTRY_TABLE = "CREATE TABLE " +
TABLE_NAME + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + NAME + "
TEXT,"
+ FILE + " TEXT" + ")";
db.execSQL(CREATE_COUNTRY_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

// method to add the compose


public void addcompose(EncryModel compose){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues c=new ContentValues();
c.put(NAME,compose.getName());
c.put(FILE,compose.getFile());
db.insert(TABLE_NAME,null,c);
db.close();
}

// method to retrieve all the encryption in List

34
public List<EncryModel> getAllEncryption(){
List<EncryModel> list=new ArrayList<>();
String query="SELECT * FROM "+TABLE_NAME;
SQLiteDatabase db=this.getReadableDatabase();
Cursor c=db.rawQuery(query,null);
if(c.moveToFirst()) {
do {

list.add(new
EncryModel(c.getInt(0),c.getString(1),c.getString(2)));
} while (c.moveToNext());
}
return list;
}
// get the count of data, this will allow user
// to not add more that five encryption in database
public int count(){
int count=0;
String query="SELECT COUNT(*) FROM "+TABLE_NAME;
SQLiteDatabase db = this.getReadableDatabase();
Cursor c=db.rawQuery(query,null);
if(c.getCount()>0){
c.moveToFirst();
count=c.getInt(0);
}
c.close();
return count;
}
// Deleting single country
public void deleteCompose(EncryModel compose) {
SQLiteDatabase db = this.getWritableDatabase();
int i=db.delete(TABLE_NAME,KEY_ID + " = ?",
new String[] { String.valueOf(compose.getId()) });

db.close();
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="4dp">

<androidx.cardview.widget.CardView
android:id="@+id/cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content">

35
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/tvName"
style="@style/TextAppearance.AppCompat.Medium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name"

android:textColor="@color/design_default_color_secondary" />

<TextView
android:id="@+id/tvPassword"
style="@style/TextAppearance.AppCompat.Large"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Password"

android:textColor="@color/design_default_color_secondary_variant"
android:textStyle="bold" />

</LinearLayout>

</androidx.cardview.widget.CardView>

</LinearLayout>

36

You might also like