You are on page 1of 30

A MINI PROJECT REPORT ON

WAVSTAGNO

Submitted By

V Nikhil Kumar (160116737045)


L Nithin Reddy (160116737046)

Under the guidance of


Mr. S. Rakesh
Asst. Professor,
Dept. of IT, CBIT

DEPARTMENT OF INFORMATION TECHNOLOGY


CHAITANYA BHARATHI INSTITUTE OF TECHNOLOGY (A)
(Affiliated to Osmania University; Accredited by NBA (AICTE), ISO Certified 9001:2000)
Website: www.cbit.ac.in
HYDERABAD – 500 075
2018
CHAITANYA BHARATHI INSTITUTE OF
TECHNOLOGY(A)
DEPARTMENT OF INFORMATION TECHNOLOGY
(Affiliated to Osmania University)
GANDIPET, HYDERABAD – 500 075

CERTIFICATE
This is to certify that the project work titled “WavStagno” submitted to CHAITANYA
BHARATHI INSTITUTE OF TECHNOLOGY, in partial fulfilment of the requirements for
the award of the completion of 5th semester (CBCS) of B.E. in Information Technology, during
the academic year 2018, is a record of original work done by V Nikhil Kumar (160116737045)
and L Nithin Reddy (160116737046) during the period of study in Dept. of IT, CBIT,
HYDERABAD, under our supervision and guidance.

PROJECT GUIDE HEAD OF THE DEPARTMENT


Mrs. S. Rakesh Dr. Suresh Pabboju
Asst. Professor, Head of the department,
Dept. of IT, CBIT. Information Technology,
CBIT, HYDERABAD

i
DECLARATION

This is to certify that the work reported in the present report titled “WavStagno” is a record
of work done by us in the Department of Information Technology, Chaitanya Bharathi Institute of
Technology, Hyderabad.

No part of the report is copied from books / journals / internet and wherever the portion is
taken, the same has been duly referred. The reported results are based on the project work done
entirely by us and not copied from any other source.

V Nikhil Kumar (160116737045)


L Nithin Reddy (160116737046)

ii
ACKNOWLEDGEMENT

It is our privilege to acknowledge with deep sense of gratitude and devotion for keen
personal interest and invaluable guidance rendered by our Project Guide Mr. S. Rakesh, Assistant
Professor, Department of Information, Chaitanya Bharathi Institute of Technology.

We take the opportunity to express our thanks to Dr. Suresh Pabboju, Professor & Head
of IT Department, CBIT for his valuable suggestions and moral support.

Our respects and regards to Mr. S. Rakesh, Assistant Professor, Department of


Information Technology, Chaitanya Bharathi Institute of Technology, for her invaluable
suggestions that helped us in successful completion of the project.

We are grateful to our Principal Dr. Ravinder Reddy Chaitanya Bharathi Institute of
Technology, for his cooperation and encouragement.

Finally, we also thank all the staff members, faculty of Dept. of IT, CBIT, our friends, and
all our family members who with their valuable suggestions and support, directly or indirectly
helped us in completing this project work.

iii
ABSTRACT

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 steganographic techniques are more

suitable for which applications.

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.

iv
What steganography essentially does is exploit human perception, human senses are not trained

to look for files that have information inside of them, although this software is available that can

do what is called Steganography. The most common use of steganography is to hide a file inside

another file.

v
Languages Used:

C# - C# (pronounced C sharp) is a general-purpose, multi-paradigm programming


language encompassing strong typing, imperative, declarative, functional, generic, object-
oriented (class-based), and component-oriented programming disciplines. It was developed
around 2000 by Microsoft within its .NET initiative and later approved as a standard by Ecma
and ISO. C# is one of the programming languages designed for the Common Language
Infrastructure.

C# programming is very much based on C and C++ programming languages, so if you have a
basic understanding of C or C++ programming, then it will be fun to learn C#.

Features of C#

 C# is a simple, modern, object oriented language


 C# includes native support for the COM/OLE and windows based applications
 Partial types
 Aliases
 Static classes
 Property access modifiers
 Nullable types and the null coalescing operator

vi
CONTENTS PAGE NO.

1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.1. Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.4. Aim of the Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.5. Organisation of Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

2. Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. About C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2.1.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2.1.2. Basic C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.3. Basic Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.1.4. C# Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

3. Software Requirement Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12


3.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
3.1.1 Purpose of the document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
3.2. Users and their Characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
3.3. Software and Hardware Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4. Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2. C#. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
4.6. Hosting the webpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5. Testing and Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14


5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2. Testing Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

vii
5.3. Output Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

6. Conclusion and Future Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18


References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

viii
LIST OF FIGURES

FIGURE NAME PAGE NO.

Fig 5.1 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


Fig 5.2 Encrypting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Fig 5.3 Encrypted File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
Fig 5.4 Decrypting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

LIST OF ABBREVIATIONS

Acronym Meaning

C# C sharp

ix
1. INTRODUCTION
1.1 OBJECTIVE

The main objective of the project “Audio steganography” is to embed the text message in
cover audio file, using the available methods of audio steganography methods. The receiver
extracts the message from carrier audio file.

1.2 MOTIVATION
We were fascinated about sending secret messages embedded inside of audio files. Now,
with the current knowledge, we are finally able to achieve encryption of secret messages.
The best part is that secrecy is for everyone.

1.3 OVERVIEW
WavStagno is an application consisting a graphical user interface developed using C#. The
possibilities of having different keys for encryption are endless.
.NET framework is used to develop the application and C# is used to design the layout of
the application and develop the steganographic functions.

1.4 AIM OF THE PROJECT


Our idea is to make the process of encryption as easy as possible and at the same time
ensure you can be as creative as you like. The aim of the project is to achieve secrecy using
steganographic techniques.

1.5 ORGANISATION OF REPORT


Chapter 1 deals with the Introduction of the project and gives the details about the

Project in an abstract view.

Chapter 2 deals with the information about the technologies used – C# and .NET and their
utilization details are discussed in brief.

Chapter 3 deals with the Software Requirements Specifications which is a specification


of the project software and hardware requirements.

1
Chapter 4 deals with the Implementation part which includes the tools and software that
are used.
Chapter 5 deals with the Testing of the project and screenshots of the project
Chapter 6 explains the Conclusion and further scope of the project.

2
2. TECHNOLOGIES

2.1 ABOUT C#

2.1.1 INTRODUCTION
C# is a programming language of .Net Framework.
C# is pronounced as "C-Sharp". It is an object-oriented programming language provided
by Microsoft that runs on .Net Framework.
By the help of C# programming language, we can develop different types of secured and
robust applications:
o Window applications
o Web applications
o Distributed applications
o Web service applications
o Database applications etc.

2.1.2 BASIC C#

THE .NET FRAMEWORK

The .Net framework is a revolutionary platform that helps you to write the following types of
applications −

 Windows applications
 Web applications
 Web services

The .Net framework applications are multi-platform applications. The framework has been
designed in such a way that it can be used from any of the following languages: C#, C++, Visual
Basic, Jscript, COBOL, etc. All these languages can access the framework as well as communicate
with each other.

3
The .Net framework consists of an enormous library of codes used by the client languages such as
C#. Following are some of the components of the .Net framework −

 Common Language Runtime (CLR)


 The .Net Framework Class Library
 Common Language Specification
 Common Type System
 Metadata and Assemblies
 Windows Forms
 ASP.Net and ASP.Net AJAX
 ADO.Net
 Windows Workflow Foundation (WF)
 Windows Presentation Foundation
 Windows Communication Foundation (WCF)
 LINQ

2.1.3 BASIC SYNTAX

The using Keyword

The first statement in any C# program is

using System;

The using keyword is used for including the namespaces in the program. A program can
include multiple using statements.

The class Keyword

The class keyword is used for declaring a class.

4
Comments in C#

Comments are used for explaining code. Compilers ignore the comment entries. The
multiline comments in C# programs start with /* and terminates with the characters */ as
shown below −

/* This program demonstrates

The basic syntax of C# programming

Language */

Single-line comments are indicated by the '//' symbol. For example,

}//end class Rectangle

Member Variables

Variables are attributes or data members of a class, used for storing data. In the preceding
program, the Rectangle class has two member variables named length and width.

Member Functions

Functions are set of statements that perform a specific task. The member functions of a
class are declared within the class. Our sample class Rectangle contains three member
functions: AcceptDetails, GetArea and Display.

Instantiating a Class

In the preceding program, the class ExecuteRectangle contains the Main() method and
instantiates the Rectangle class.

5
2.1.4 C# DATA TYPES
The variables in C#, are categorized into the following types −

 Value types

 Reference types

 Pointer types

Value Type

Value type variables can be assigned a value directly. They are derived from the
class System.ValueType.

The value types directly contain data. Some examples are int, char, and float, which
stores numbers, alphabets, and floating point numbers, respectively. When you declare
an int type, the system allocates memory to store the value.

To get the exact size of a type or a variable on a particular platform, you can use
the sizeof method. The expression sizeof(type) yields the storage size of the object or type in bytes.
Following is an example to get the size of int type on any machine −

using System;

namespace DataTypeApplication {

class Program {

static void Main(string[] args) {

Console.WriteLine("Size of int: {0}", sizeof(int));

Console.ReadLine();

6
When the above code is compiled and executed, it produces the following result −

Size of int: 4

Reference Type

The reference types do not contain the actual data stored in a variable, but they contain a
reference to the variables.

In other words, they refer to a memory location. Using multiple variables, the reference
types can refer to a memory location. If the data in the memory location is changed by one of the
variables, the other variable automatically reflects this change in value. Example of built-
in reference types are: object, dynamic, and string.

Object Type

The Object Type is the ultimate base class for all data types in C# Common Type System
(CTS). Object is an alias for System.Object class. The object types can be assigned values of any
other types, value types, reference types, predefined or user-defined types. However, before
assigning values, it needs type conversion.

When a value type is converted to object type, it is called boxing and on the other hand,
when an object type is converted to a value type, it is called unboxing.

object obj;

obj = 100; // this is boxing

Dynamic Type

You can store any type of value in the dynamic data type variable. Type checking for these
types of variables takes place at run-time.

Syntax for declaring a dynamic type is −

7
dynamic <variable_name> = value;

For example,

dynamic d = 20;

Dynamic types are similar to object types except that type checking for object type
variables takes place at compile time, whereas that for the dynamic type variables takes place at
run time.

String Type

The String Type allows you to assign any string values to a variable. The string type is an
alias for the System.String class. It is derived from object type. The value for a string type can be
assigned using string literals in two forms: quoted and @quoted.

For example,

String str = "Tutorials Point";

A @quoted string literal looks as follows −

@"Tutorials Point";

The user-defined reference types are: class, interface, or delegate. We will discuss these
types in later chapter.

Pointer Type

Pointer type variables store the memory address of another type. Pointers in C# have the
same capabilities as the pointers in C or C++.

Syntax for declaring a pointer type is −

type* identifier;

For example,

8
char* cptr;

int* iptr;

2.2 METHODS

A method is a group of statements that together perform a task. Every C# program has at
least one class with a method named Main.
To use a method, you need to −
 Define the method
 Call the method
Defining Methods in C#
When you define a method, you basically declare the elements of its structure. The
syntax for defining a method in C# is as follows −

<Access Specifier> <Return Type> <Method Name>(Parameter List) {


Method Body
}

Following are the various elements of a method −


 Access Specifier − This determines the visibility of a variable or a method from another
class.
 Return type − A method may return a value. The return type is the data type of the value
the method returns. If the method is not returning any values, then the return type is void.
 Method name − Method name is a unique identifier and it is case sensitive. It cannot be
same as any other identifier declared in the class.
 Parameter list − Enclosed between parentheses, the parameters are used to pass and
receive data from a method. The parameter list refers to the type, order, and number of
the parameters of a method. Parameters are optional; that is, a method may contain no
parameters.
 Method body − This contains the set of instructions needed to complete the required
activity.
Example

9
Following code snippet shows a function FindMax that takes two integer values and
returns the larger of the two. It has public access specifier, so it can be accessed from
outside the class using an instance of the class.

class NumberManipulator {

public int FindMax(int num1, int num2) {

/* local variable declaration */

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

...

Calling Methods in C#
You can call a method using the name of the method. The following example illustrates
this −

using System;

namespace CalculatorApplication {

class NumberManipulator {

10
public int FindMax(int num1, int num2) {

/* local variable declaration */

int result;

if (num1 > num2)

result = num1;

else

result = num2;

return result;

static void Main(string[] args) {

/* local variable definition */

int a = 100;

int b = 200;

int ret;

NumberManipulator n = new NumberManipulator();

//calling the FindMax method

ret = n.FindMax(a, b);

Console.WriteLine("Max value is : {0}", ret );

Console.ReadLine();

} }

11
3. SOFTWARE REQUIREMENT SPECIFICATION

3.1 INTRODUCTION
The requirements specification is a technical specification of requirements for the software
products. It is the first step in the requirements analysis process it lists the requirements of a
particular software system including functional, performance and security requirements. The
requirements also provide usage scenarios from a user, an operational and an administrative
perspective. The purpose of software requirements specification is to provide a detailed overview
of the software project, its parameters and goals. This describes the project target audience and its
user interface, hardware and software requirements. It defines how the client, team and audience
see the project and its functionality.

3.1.1 PURPOSE OF THE DOCUMENT


This software requirement specification describes all the requirements elicited for
“WavStagno” and is intended to be used by the members examining the project and implementing
and verifying the application. Unless otherwise noted all requirements are of high priority and are
committed.

3.2 USERS AND THEIR CHARACTERISTICS


WavStagno application is useful to the users to achieve message encryption using C#, and it
helps provide secrecy to intelligent services.

3.3 SOFTWARE AND HARDWARE REQUIREMENTS

Operating System Windows 7 and higher

Programming Languages C#
Sever side Script None
Database None
Software Needed Microsoft Visual Studio 2017 or higher
Processor Intel® Core™ i3 CPU M 350 @2.27GHz

Ram 1 GB or higher

Disk Space 500 MB

12
4. IMPLEMENTATION

4.1 INTRODUCTION

The success of the software product is determined only when it is successfully implemented
according to the requirements. The analysis and the design of the proposed system provide a
perfect platform to implement the idea using the specified technology in the desired environment.
The implementation of our system is made user friendly.

Any software project is designed in modules and the project is said to be successfully implemented
when each of the module is executed individually to obtain the expected result and also, when all
the modules are integrated and run together without any errors.

4.2 C#
C# was used to build the basic structure and display the contents of the application. The
basic structure of the articles were built using C#. They have slight differences in their structures.
It includes the .NET framework.

4.3 .NET FRAMEWORK


The .Net framework applications are multi-platform applications. The framework has been
designed in such a way that it can be used from any of the following languages: C#, C++, Visual
Basic, Jscript, COBOL, etc. All these languages can access the framework as well as communicate
with each other.

4.6 HOSTING THE PROJECT

• The WavStagno application is hosted using the functionality of GitHub.

• GitHub is a web-based Git or version control repository and Internet hosting service. It is
mostly used for code.

• Small websites can be hosted from public repositories on GitHub. The URL format is
https://username.github.io./

13
5. TESTING AND RESULTS

5.1 INTRODUCTION
Software testing is a critical element of software quality assurance and represents the
ultimate review of specification, design and coding. In fact, testing is the one step in the software
engineering process that could be viewed as destructive rather than constructive.

A strategy for software testing integrates software test case design methods into a well-
planned series of steps that result in the successful construction of software. Testing is the set of
activities that can be planned in advance and conducted systematically. The underlying motivation
of program testing is to affirm software quality with methods that can economically and effectively
apply to both strategic to both large and small-scale systems.

5.2 TESTING OBJECTIVES

The main objective of performance testing is designed to test whether the website’s display
is as expected and whether the website is functioning properly or not.

As the test results are gathered and evaluated they begin to give a qualitative indication of the
reliability of the website. If proper output is not obtained, the overall quality of the Website is
questioned. If, on the other hand, all the results which are not successful, are encountered, and are
easily modifiable, then the following conclusion can be made: The tests are inadequate as the
requirements mentioned are not compatible. The testing includes:

 Checking whether the information is displayed or not.


 Checking whether all the links between each webpage in the website works or is
misdirected.
 Verifying if all the pictures are displayed and none of the files are corrupted.

14
5.3 OUTPUT SCREENS

Fig 5.1 Application

The above figure shows the application of the WavStagno containing the File Path, Browse
button and message entry.

15
Fig 5.2 Encrypting

Fig 5.3 Encrypted File

16
Fig 5.4 Decryting

17
6. CONCLUSION AND FUTURE SCOPE

Our application “WavStagno” is designed in such a way that future modifications can be done
easily.

It is one destination to give you a brief idea about ‘Steganograhy’.

The intent of this project was to cover some of the common methods of data hiding using
widespread file formats and easily available tools as an introduction, to the primary concepts of
steganography. These discussions should serve as a starting point to the exploration of more
complex stenographic techniques.

The following conclusion can be deduced from the development of our project.

 Steganography using .wav files is very simple.

 It allows secrecy.

 It is widely used in intelligent services.

 Embedded information could be transferred to the destination without being detected.

This application avoids the manual work and the timeless concern with it. The next enhancement
is, we will develop a mobile application to implement audio steganography. And in future, we
want to upload this in Google Play Store.

18
REFERENCES

BOOK REFERENCES –

 C# Programming: Step-By-Step Guide To C# Programming For Beginners


Book by Robert Anderson

WEB REFERENCES-

1. https://www.udemy.com/topic/c-sharp/

2. https://www.javatpoint.com/c-sharp-tutorial

3. https://www.tutorialspoint.com/csharp/

19
20

You might also like