Professional Documents
Culture Documents
WAVSTAGNO
Submitted By
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.
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.
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.
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
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
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# 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#
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
4. Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2. C#. . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
4.6. Hosting the webpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
vii
5.3. Output Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
viii
LIST OF FIGURES
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.
Chapter 2 deals with the information about the technologies used – C# and .NET and their
utilization details are discussed in brief.
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 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 −
using System;
The using keyword is used for including the namespaces in the program. A program can
include multiple using statements.
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 −
Language */
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 {
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;
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.
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,
@"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++.
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 −
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 {
int result;
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) {
int result;
result = num1;
else
result = num2;
return result;
int a = 100;
int b = 200;
int 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.
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
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.
• 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.
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:
14
5.3 OUTPUT SCREENS
The above figure shows the application of the WavStagno containing the File Path, Browse
button and message entry.
15
Fig 5.2 Encrypting
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.
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.
It allows secrecy.
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 –
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