Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 44

CHAPTER-1

INTRODUCTION

1.1 INTRODUCTION

“Video Steganography” is a technique to hide any kind of files in any extension into a
carrying Video file. When information is hidden inside video in program or person hiding
the information will usually use the discrete cosine transform (DCT) method. DCT works
by slightly changing the each of the images in the video, only so much though so it is not
noticeable by the human eye. To be more precise about how DCT works, DCT alters values
of certain parts of the images, it is usually rounds them up. For example if part of an image
has a value of 6.667 it will round up to 7. Steganography in videos is similar to that of
steganography in images, apart from information is hidden in each frame of video. White
space and tabs occur naturally in documents, so there is not really any possible way using
method of steganography would cause someone to be suspicious.

1.2 OBJECTIVE OF THE PROJECT

The main purpose for preparing this document is to give a general insight into the
analysis and requirements of the existing system or situation and for determining the
operating characteristics of the system. The main objective of this system is that to avoid
drawing suspicion to the transmission of hidden message. The goal of cryptography is to
make data unreadable by a third party, the goal of stenography is to hide the data from a
third party through the use of advanced computer software, authors of images and software
can place a hidden trademark in their product, allowing them to keep a check on piracy.
This is commonly known as watermarking. Hiding serial numbers or a set of characters
that distinguishes an object from a similar object is known as finger printing. Together,
these two are intended to fight piracy. The latter is used to detect copyright violators and
the former is used to prosecute them. But these are only examples of the much wider field
of steganography.

1
CHAPTER-2

LITERATURE REVIEW

2.1 EXISTING SYSTEM

To protect important information we use cryptography. Steganography is different


from cryptography, where the existence of the message itself is not disguised, but the
content is obscured. Steganography could be considered as the dark cousin of
cryptography. Cryptography assures privacy whereas Steganography assures secrecy. For
e.g. Sending of encrypted credit card details over the internet is well known to a malicious
user. But, the actual content is randomized or confused and hence not revealed. But, in
Steganography the fact that the credit card details is being sent is kept secretly (as the
message or the image appears innocent). The advantage of steganography over
cryptography alone is that messages do not attract attention to themselves, to messengers,
or to recipients. An unhidden coded message, no matter how unbreakable it is, will arouse
suspicion and may in itself be incriminating, as in some countries encryption is illegal.

2.2 LITERATURE SURVEY

2.2.1 INTRODUCTION

A feasibility study is a high-level capsule version of the entire System analysis and
Design Process. The study begins by classifying the problem definition. Feasibility is to
determine if it’s worth doing. Once an acceptance problem definition has been generated,
the analyst develops a logical model of the system. A search for alternatives is analyzed
carefully. There are 3 parts in feasibility study.

2
2.2.2 TECHNICAL FEASIBILITY

Evaluating the technical feasibility is the trickiest part of a feasibility study. This is
because, at this point in time, not too many detailed design of the system, making it difficult
to access issues like performance, costs on (on account of the kind of technology to be
deployed) etc. A number of issues have to be considered while doing a technical analysis.
Understand the different technologies involved in the proposed system before commencing
the project we have to be very clear about what are the technologies that are to be required
for the development of the new system. Find out whether the organization currently
possesses the required technologies. Is the required technology available with the
organization.

2.2.3 OPERATIONAL FEASIBILITY

Proposed project is beneficial only if it can be turned into information systems


that will meet the organizations operating requirements. Simply stated, this test of
feasibility asks if the system will work when it is developed and installed. Are there
major barriers to Implementation? Here are questions that will help test the operational
feasibility of a project:

 Is there sufficient support for the project from management from users? If the
current system is well liked and used to the extent that persons will not be able to
see reasons for change, there may be resistance.

 Are the current business methods acceptable to the user? If they are not, Users may
welcome a change that will bring about a more operational and useful systems.

 Have the user been involved in the planning and development of the project?

 Early involvement reduces the chances of resistance to the system and in general
and increases the likelihood of successful project.

3
2.2.4 ECONOMIC FEASIBILITY

Economic feasibility attempts 2 weigh the costs of developing and implementing a


new system, against the benefits that would accrue from having the new system in place.
This feasibility study gives the top management the economic justification for the new
system. A simple economic analysis which gives the actual comparison of costs and
benefits are much more meaningful in this case. In addition, this proves to be a useful point
of reference to compare actual costs as the project progresses. There could be various types
of intangible benefits on account of automation. These could include increased customer
satisfaction, improvement in product quality better decision making timeliness of
information, expediting activities, improved accuracy of operations, better documentation
and record keeping, faster retrieval of information, better employee morale.

2.3 PROPOSED SYSTEM

Encryption software protects internet connected computers from crackers and other
online intruders. The technology is widely used to encrypt credit card information, bank
account numbers and other type of financial records so they can send safely and securely
across the internet. Protect much of the intellectual content that’s marketed on the web,
such as music, Videos, articles, and software, restricting its availability to paying
customers. This system helps to hide the information while sending the important and
confidential documents in video files; it will be invisible for the third person. This system
is helpful for the defense and security departments sending and receiving the confidential
matters in emergency situations.

2.4 ADVANTAGES OF EXISTING SYSTEM

The project plays a vital role in the development life cycle (SDLC) .As it describes the
complete requirement of the system. It is meant for use by the developers and will be the

4
basic during testing phase. Any changes made to the requirements in the future will have
to go through formal change approval process. Actually computerized process in recent
years have contributed to augment security requirements both at the final user level and at
the enterprise level since the massive utilization of computers and the internet with global
availability. Throughout time computational security needs have been focused on different
features, Secrecy and confidentiality, identification, verification, non repudiation, integrity
control and availability.

The cover data should not be significantly degraded by the embedded data, and the
embedded data should be as imperceptible as possible. The embedded data should be as
immune as possible to modifications from intelligent attacks or anticipated manipulations.
Thus it is necessary that the hidden message should be encrypted before stenography.

5
CHAPTER-3

SYSTEM ANALYSIS

3.1 INTRODUCTION

The first step in developing anything is to state the requirements. This applies just as
much to leading edge research as to simple programs and to personal programs, as well as
to large team efforts. Being vague about your objective only postpones decisions to a later
stage where changes are much more costly.

The problem statement should state what is to be done and not how it is to be done. It
should be a statement of needs, not a proposal for a solution. A user manual for the desired
system is a good problem statement. The requestor should indicate which features are
mandatory and which are optional, to avoid overly constraining design decisions. The
requestor should avoid describing system internals, as this restricts implementation
flexibility. Performance specifications and protocols for interaction with external systems
are legitimate requirements. Software engineering standards, such as modular
construction, design for testability, and provision for future extensions, are also proper.

Many problems statements from individuals, companies, government agencies


mixture requirements with design decisions. There may sometimes be a compelling reason
to require a particular computer or language; there is rarely justification to specify the use
of a particular algorithm. The analyst must separate the true requirements from design and
implementation decisions disguised as requirements. The analyst should challenge such
pseudo requirements, as they restrict flexibility. There may be politics or organizational
reasons for the pseudo requirements, but at least the analyst should recognize that these
externally imposed design decisions are not essential features of the problem domain.

A problem statement may have more or less detail. A requirement for a


conventional product, such as a payroll program or a billing system, may have considerable
detail. A requirement for a research effort in a new area may lack many details, but
presumably the research has some objective, which should be clearly stated.

6
Most problem statements are ambiguous, incomplete, or even inconsistent. Some
requirements are just plain wrong. Some requirements, although precisely stated, have
unpleasant consequences on the system behavior or impose unreasonable implementation
costs. Some requirements seem reasonable at first but do not work out as well as the request
or thought. The problem statement is just a starting point for understanding the problem,
not an immutable document. The purpose of the subsequent analysis is to fully understand
the problem and its implications. There is no reasons to expect that a problem statement
prepared without a fully analysis will be correct.

The analyst must work with the requestor to refine the requirements so they
represent the requestor’s true intent. This involves challenging the requirements and
probing for missing information. The psychological, organizational, and political
considerations of doing this are beyond the scope of this book, except for the following
piece of advice: If you do exactly what the customer asked for, but the result does not meet
the customer’s real needs, you will probably be blamed anyway.

7
3.2 SYSTEM REQUIREMENTS

3.2.1 MINIMUM SOFTWARE REQUIREMENT

A set of programs associated with the operation of a computer is called software.


Software is the part of the computer system which enables the user to interact with several
physical hardware devices.

The minimum software requirement specifications for developing this project are as
follows:

Operating System : Windows XP /2000

Technologies : JAVA 1.6

Office Suite : Ms Office

3.2.2 MINIMUM HARDWARE REQUIREMENT

The Collection of internal electronic circuits and external physical devices used in
building a computer is called Hardware.

The minimum hardware requirement specification for developing this project is as follows:

Processor : Pentium IV

RAM : 512MB RAM

Secondary memory : 10GB

8
3.3 SOFTWARE DESCRIPTION

3.3.1 GENERAL

A programming tool or software tool is a program or application that software


developers use to create, debug, maintain, or otherwise support other programs and
applications. The term usually refers to relatively simple programs that can be combined
together to accomplish a task. The Chapter describes about the software tool that is used
in our project.

3.3.2 JAVA TECHNOLOGY

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 constraints imposed by the Internet environment, Java
gives the programmer, full control.
• Finally, Java is to Internet programming where C was to system
programming.

3.3.3 IMPORTANCE OF JAVA TO THE INTERNET


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. The Dynamic, Self-executing programs cause
serious problems in the areas of Security and probability. But, Java addresses those
concerns and by doing so, has opened the door to an exciting new form of program called
the Applet.

9
3.3.4 Java AWT
Java programming language class library provides a user interface toolkit called the
Abstract Windowing Toolkit, or the AWT. The AWT is both powerful and flexible.
Because the Java programming language is platform-independent, the AWT must also be
platform-independent. The AWT was designed to provide a common set of tools for
graphical user interface design that work on a variety of platforms. The user interface
elements provided by the AWT are implemented using each platform's native GUI toolkit,
thereby preserving the look and feel of each platform. This is one of the AWT's strongest
points. (as shows in fig 3.1)

Fig 3.1 User interface component tree

A graphical user interface is built of graphical elements called components. Typical


components include such items as buttons, scrollbars, and text fields. Components allow
the user to interact with the program and provide the user with visual feedback about the
state of the program.

10
Fig 3.2 Inheritance relationship between the user interface component classes provided by the AWT.

The AWT provides five layout managers as shows in fig 3.3. They range from very simple
to very complex. The Flow Layout class places components in a container from left to
right.

Fig 3.3 Layout manager

11
3.3.5 Java.awt.event
An action or occurrence, often generated by the user, to which the program might
respond—for example, key presses, button clicks, or mouse movements. Events do not
adhere to this traditional approach because they occur outside of program control. When
an event happens, the application is notified, causing the execution of a piece of code. In
Java, events are generated by objects. An event is represented by a vautil.EventObject
subclass that carries event information. There are subclasses for each kind of event.

Fig 3.4 Event Diagram

3.3.6 JAVA APPLETS

An applet is a program written in the Java programming language that can be


included in an HTML page, much in the same way an image is included in a page. When
you use a Java technology-enabled browser to view a page that contains an applet, the
applet's code is transferred to your system and executed by the browser's Java Virtual
Machine (JVM). For information and examples on how to include an applet in an HTML
page, refer to this description of the <APPLET> tag. An applet is a special kind of Java
program that a browser enabled with Java technology can download from the internet and
run. An applet is typically embedded inside a web-page and runs in the context of the
browser.

12
CHAPTER-4

SYSTEM DESIGN

4.1 PROBLEM DEFINITION

The problem statement should state what is to be done and not how it is to be done. It
should be a statement of needs, not a proposal for a solution. A user manual for the desired
system is a good problem statement. The requestor should indicate which features are
mandatory and which are optional, to avoid overly constraining design decisions. The
requestor should avoid describing system internals, as this restricts implementation
flexibility. Performance specifications and protocols for interaction with external systems
are legitimate requirements. Software engineering standards, such as modular
construction, design for testability, and provision for future extensions, are also proper.

Many problems statements, from individuals, companies, and government agencies,


mixture requirements with design decisions. There may sometimes be a compelling reason
to require a particular computer or language; there is rarely justification to specify the use
of a particular algorithm. The analyst must separate the true requirements from design and
implementation decisions disguised as requirements. The analyst should challenge such
pseudo requirements, as they restrict flexibility. There may be politics or organizational
reasons for the pseudo requirements, but at least the analyst should recognize that these
externally imposed design decisions are not essential features of the problem domain.

A problem statement may have more or less detail. A requirement for a conventional
product, such as a payroll program or a billing system, may have considerable detail. A
requirement for a research effort in a new area may lack many details, but presumably the
research has some objective, which should be clearly stated.

The methodology used to develop this project is object-oriented methodology is based


on function and procedures. It can be said as the development of software by building self-
contained modules as objects that can be easily replaced, modified and reused. In this
environment software is a collection of discrete objects that encapsulate their data as well

13
as the functionality to model real world “objects”. Each object has attribute and methods.
Objects are grouped into classes. Here each object is responsible for itself.

The main focus of the analysis phase of Software development is on “What needs to
be done”. The objects discovered during the analysis can serve as the framework or Design.
The class’s attributes, methods and association identified during analysis must be designed
for implementation language. New classes must be introduced to store intermediate results
during the program execution.

During the Design phase, we elevate the model into logical entities, some of which
might relate more to the computer domain as people or employees. Here his goal is to
design the classes that we need to implement the system the difference is that, at this level
we focus on the view and access classes, such as how to maintain information or the best
way o interact with a user or present information.

4.2 DESIGN PROCESS

During the design phase the classes identified in object-oriented analysis Must be
revisited with a shift focus to their implementation. New classes or attribute and Methods
must be an added for implementation purposes and user interfaces. The object-oriented
design process consists of the following activities:

14
1. Apply design axioms to design classes, their attributes, methods, associations, structure,
protocols Refine and complete the static UML class diagram by adding details to the
UML diagram. This step consists of following activities.

• Refine attributes *Design methods and protocols by utilizing a UML activity


diagram to represent the method’s algorithms.
• Refine associations between classes
• Refine class hierarchy and design with inheritance
• Iterate and refine again

2. Design the access layer

• Create mirror classes: For every business class identified and created. For
example, if there are three business classes, create three access layer classes.

• Identify access layer class relationships.


• Simplify classes and their relationships: The main goal here is to eliminate
redundant classes and structures.

*Redundant classes: Do not keep two classes that perform similar translate results

activities. Simply select one and eliminate the other.

*Method classes: Revisit the classes that consist of only one or two methods

to see if they can be eliminated or combined with existing classes.

Define the view layer classes

• Design the macro level user interface, identifying view layer objects.
• Design the micro level user interface, which includes these activities:  Design
the view layer objects by applying the design axioms  Built a prototype of
the view layer interface. • Test usability and user satisfaction
• Iterate and refine.

15
3. Iterate refine the whole design process. From the class diagram, you can begin to
extrapolate which classes you will have to built and which existing classes you can
reuse. As you do this, also begin this, also begin thinking about the inheritance structure.
If you have several classes that seem relates but have specific differences.

Design also must be traceable across requirements, analysis, design from the Requirements
model.

4.2.1 UML ATTRIBUTE PRESENTATION

Visibility name: type-expression=initial-value Visibility indicates either public


visibility or protected visibility or private visibility. The public visibility indicates that the
attribute can be accessible to all classes. The protected visibility indicates that the
accessibility is given to the subclasses and operations of the class. The private visibility
indicates that the accessibility can be given only to the operations of the class only. Object
oriented methodology involves mainly

a. Analysis

b. Design

c. Prototyping and testing.

4.3 DATA FLOW DIAGRAM

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


an information system. DFD’s can also be used for the visualization of data processing.
The data flow diagram represents the node moving from sender to receiver. Sender gets a
plain text and generates public or private keys and selects the image and hide the data.
Encrypt the data and identifies receiver address and establish a connection. After
establishing connection send the encrypted data. Receiver receives encrypted data and
decrypts the data by generating keys. Decrypt the data finally displays plain text to the
user.

16
There are two types of DFD’s they are

1. Context Level DFD


2. Top Level DFD

4.3.1 CONTEXT LEVEL DFD

In the Context Level the whole system is shown as a single process. as shows in fig 4.1

• No data stores are shown.


• Inputs to the overall system are shown together with data sources (as External
entities).
• Outputs from the overall system are shown together with their destinations (as
External entities).

Fig 4.1 Context level DFD

17
4.3.2 TOP LEVEL DFD

The Top Level DFD gives the overview of the whole system identifying the major system
processes and data flow. This level focuses on the single process that is drawn in the
context diagram as shows in fig 4.2 by ‘Zooming in’ on its contents and illustrates what it
does in more detail.

Fig 4.2 Top Level DFD

18
4.4 UML DIAGRAMS

4.4.1 USE CASE DIAGRAM


A use case describes a sequence of actions that provide something of measurable
value to an actor and is drawn as a horizontal ellipse an actor is a person, organization, or
external system that plays a role in one or more interactions with your system.

Use Case Diagram

A use case diagram is a diagram that shows a set of use cases and actors and relationships.
as shows in fig 4.3
Use case commonly contain
 Use cases
 Actors
 Dependency, generalization and association relationships

<<extend
>>

send message Video File

Encryption

Keys
User
Decryption

<<extend
>>
receive message Video file

Fig 4.3 Use case Diagram

19
4.4.2 ACTIVITY DIAGRAM

An activity diagram shows the flow from activity to activity. An activity is an ongoing
non-atomic execution within a state machine. Activities ultimately result in some action,
which is made up of executable atomic computations that result in a change
in state of the system or the return of a value. as shows in fig 4.4

Activity diagrams commonly contain

 Activity states and action states


 Transitions
 Objects

Like all other diagrams, activity diagrams may contain notes and constrains

20
Encryption Process

Send
Message

Videofile

Encryption

Create Delete

Videofile

Fig.4.4 Activity Diagram

21
Decryption Process

Videofile

Decryption

Create Delete

Videofile

Receive
Message

Fig.4.4 Activity Diagram

22
4.4.3 SEQUENCE AND COLLABORATION DIAGRAM

An interaction diagram shows an interaction, consisting of a set of objects and their


relationships, including the messages that may be dispatched among them.

A sequence diagram is an interaction diagram that emphasizes the time ordering of


messages.

Graphically, a sequence diagram is a table that shows objects arranged along x-axis and
messages, ordered in increasing time, along the y-axis.

Contents

Sequence diagrams commonly contain the following:


• Objects
• Links
• Messages
Like all other diagrams, sequence diagrams may contain notes and constrains as shows in
fig 4.5

23
User Sequence

: User Send Message Video File KEY Video File Receive Message

1: Createmessage ()

2: checkvideo ()
.FLV file

response()

3: copymessage ()

response()
4: convert()

acknowledgement()

5: Encrypt()/Decrypt ()
validate()

disconnectREQ()

disconnectAckReq()

6: Encrypt/Decrypt () file
.FLV file
response()

7: receive()
response()

Fig 4.5 Sequence Diagram

24
4.4.4 COLLABORATION DIAGRAM

Collaboration is a society of classes, interfaces, and other elements that work together
to provide some cooperative behavior that’s bigger than the sum of all its parts.

Collaboration is also the specification of how an element, such as a classifier or an


operation, is realized by a set of classifiers and associations playing specific roles used in
a specific way

Contents

Collaboration diagrams commonly contain the following:

 Objects
 Links
 Messages
Like all other diagrams, sequence diagrams may contain notes and constrains. as shows in
fig 4.6

25
User Collaboration

3: .FLV file

1: 1: Createmessage ()
2: 2: checkvideo ()
Send
Message
4: response ()
: User

13: 6: Encrypt/Decrypt () file


5: 3: copymessage ()

6: response() 14: .FLV file


15: response ()

16: 7: receive()
Video File
17: response ()

8: acknowledgement ()
11: disconnectREQ ()
12: disconnec tA ckReq ()

10: validate()
7: 4: convert()
9: 5: Encrypt()/Decrypt ()

KEY Receive
Message

Fig 4.6 Colloboration Diagram

26
4.4.5 COMPONENT DIAGRAM

A component diagram in the Unified Modeling Language, depicts how components are
wired together to form larger components and or software systems. Components are wired
together by using an assembly connector to connect the required interface of one component
with the provided interface of another component. Components diagrams can
be used to illustrate the structure of arbitrarily complex systems. as shows in fig 4.7

Encryption

User Message

Decryption

DataBasse JDBC Video file

Fig 4.7 Component Diagram

27
4.4.6 DEPLOYMENT DIAGRAM

A deployment diagram is a diagram that shows the configuration of run time processing
nodes and the components that live on them.

Graphically, a deployment diagram is collection of vertices and arcs.

Contents

Deployment diagram commonly contain the following things.

• Nodes
• Dependency and association relationships.
Like all other diagrams, deployment diagrams may contain notes and constraints.
Deployment diagrams may also contain components, each of which must live on some
node.
Deployment diagrams may also contain packages or subsystems, both of which are used
to group elements of your model into larger chunks. as shows in fig 4.8 User
deployment

Database Server

MySQL Server

28
USER

AWT
Application

Applet

Fig 4.8 DEPLOYMENTDIAGRAM

29
4.4.7 CLASS DIAGRAM

Fig 4.9 Class Diagram

30
4.5 ER DIAGRAM
Entity Relationship Diagrams (ERDs) illustrate the logical structure of databases. An
entity-relationship (ER) diagram is a specialized graphic that illustrates the
interrelationships 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.

Entity relationship diagrams are a way to represent the structure and layout of a
database. It is used frequently to describe the database schema. ER diagrams are very
useful as the provide a good conceptual view of any database, regardless of the underlying
hardware and software.

Video file
ID: VARCHAR(20) message:
VARCHAR2(2000) Video file:
LARGE BINARY
e_message:
VARCHAR(2000)
d_message:
VARCHAR(2000)

31
4.6 MODULE DESCRIPTION

This system is divided into four modules:

(i) Sending message (ii)


Encryption module
(iii) Decryption module.
(iv) Receiving message

(i) SENDING MESSAGE

The sender can send a message to the destination more securely. This can be done by
attaching a video file to the message. So the third party can be unaware the secret message.
They think that a video file is sending and they not at all know about this secret sending of
the message.

(ii) ENCRYPTION MODULE

In this a sender can encrypt a file by entering a key. The same key must be entered
same key must entered during the decryption process.

(iii) DECRYPTION MODULE

This process can be done by entering the key that previously entered during the
Encryption process. If the entered key is wrong the message won’t be received
correctly.

(iv) RECIEVING MESSAGE

In this the Receiver can receive the hidden message by the decryption process. In this
the user enters the same key as the sender sends. The receiver can receive the message by
correctly entering the key.

32
CHAPTER-5

OUTCOME OF THE PROJECT

Steganography especially combined with cryptography, is a powerful tool which


enables people to communicate without possible eavesdroppers even knowing there is a
form of communication in the first place. These methods used in the science of
steganography have advanced a lot over the past centuries, especially with the rise of
computer era. Although the techniques are still not used very often, the possibilities are
endless. Many different techniques exist and continue to be developed, while the ways of
detecting hidden messages also advance quickly.

33
CHAPTER-6
SOURCE CODE

//A Simple Java program for a video stegnography System (Code) Part 2

//Part 1 (PSEUDOCODE )
//CODE
import java.util.*;
import java.util.LinkedList;
class car11{
public static void main(String args[]){
LinkedList <vehicle>list1 = new LinkedList<vehicle>();
LinkedList <vehicle>list2 = new LinkedList<vehicle>();
Scanner in=new Scanner(System.in);
System.out.println("");
System.out.println("\t"+" *****WELCOME TO ROYAL CAR PARK *****");
System.out.println("\t"+" NAME: PGA groups");
System.out.println("\t"+" Reg#: 151CS ");
System.out.println("\t"+" RollNo: 229,145,121
");
System.out.println("");
System.out.println("\t"+"Car Park contains : " + list1);
int inputNum1=0;
int carNum1;
int Num2;
try{
while(true){
System.out.println("1.Enter Garage\n2.Exit from garage\n3.Display Car List\n4.Exit
menu");

34
inputNum1=in.nextInt();
switch(inputNum1){
case 1:if(list1.size()<=9)
{
int numOfCars=0;
vehicle vehicleID=null;
for(int h=0;h<list1.size();h++){
vehicleID=list1.get(h);
numOfCars=vehicleID.no;
System.out.println("Car numbers in the Car Park now "+numOfCars);
}System.out.println("");
System.out.println("Car Park has another : " + (10-numOfCars)+" vacansies");
System.out.println("\t"+"...Please come next car...");
System.out.println("");
System.out.println("Car number "+(list1.size()+1)+" is the next to enter garage");
System.out.print("Enter the car number given above ");
carNum1=in.nextInt();
if((list1.size()+1)==carNum1){
list1.add(new vehicle(carNum1));
}
else{
System.out.println("Please enter correct car number ");
}
}
else{
System.out.println("");
System.out.println("Sorry!!!!");
System.out.println("No parking space available.Please wait until a vacancy comes");

35
int inputNum2=0;
for(int h=0;h<list2.size();h++){
System.out.print(list2.get(h).no+" ");
}
System.out.println(" Cars are waiting to enter garage");
System.out.println("Would you like to enter waiting list???");
System.out.println("1.yes\n2.no");
inputNum2=in.nextInt();
switch(inputNum2){
case 1:
System.out.println("Car number "+(list2.size()+11)+" is the next to enter garage");
System.out.print("Enter the car number given above ");
int waitingCarNum;
waitingCarNum=in.nextInt();
if((list2.size()+11)==waitingCarNum)
{
for(int i=0;i<list2.size()-1;i++){
vehicle temp=list2.get(i);
System.out.println(temp.no);
}
list2.add(new vehicle(waitingCarNum));
System.out.println("Waiting List ");
for(int h=0;h<list2.size()-1;h++){
System.out.print(list2.get(h).no+" ");
}
System.out.println("");
}
else{

36
System.out.println("Please enter correct car number ");
}
/*vehicle ghg=list2.getFirst();
if((list2.size()+11)==waitingCarNum){
list2.add(new vehicle(waitingCarNum));
System.out.println( "add to waiting list "+waitingCarNum);
System.out.println("New waiting list"+list2);
System.out.println("Thank you.Please wait...");
}
else{
System.out.println("Sir.Please enter correct car number ");
}*/
break;
case 2:
System.out.println("Thank you");
break;
}
break;
}
break;
case 2:
System.out.println("1.Depart from main garage\n2.Depart From Waiting List");
int inputNum3=in.nextInt();
try{
switch(inputNum3) {
case 1:
if(list1.size()==0){
System.out.println("Garage is empty. If you wish you can Enter your car now");

37
}
else{
System.out.println("Car numbers in the Car park.Choose yours ");
vehicle qsa=null;
int ssd=0;
for(int h=0;h<list1.size();h++ ){
qsa=list1.get(h);
ssd=qsa.no;
System.out.println("in Park "+ssd);
}
System.out.println("Enter the number of your car");
int RemoveCar=0;
RemoveCar = in.nextInt();
//System.out.println("");
//System.out.println("");
//vehicle qa=null;
//vehicle qa=list1.getFirst();
int sd=0;
int which=RemoveCar;// wanted car
//int =list1.peek().no;//mulma id eka
//try{
for(int h=0;h<list1.size();h++){
vehicle qa=list1.get(h);
if(qa.no!=which){
qa=list1.get(h);
continue;
}
else{

38
vehicle kl=null;
for(int u=0;u<list1.size()-1;u++){
kl=list1.get(u);
if(kl.no!=which){
//kl.incmoves(2);
kl.mvs+=2;
}
else
break;
}
for(int v=list1.size();(list1.get(h).no!=which);v--){
//kl.incmoves(1);
kl.mvs+=1;
}
System.out.println("moves "+ list1.get(h).incmoves(1));
list1.remove(h);
break;
}
/*qa=list1.get(h);
sd=qa.no;
System.out.println("Park now "+sd);
*/
}
//}
//catch(Exception e){
// System.out.println(e);
//}
if(list2.size()>0){

39
System.out.println("So car number "+list2.getFirst()+" to car park:");
list1.add(list2.getFirst());
list1.add(new vehicle(list2.getFirst().no));
list2.remove(0);
System.out.println("New car list in car park : " + list1);
System.out.println("");
}
else{
System.out.println("No cars in waiting list to enter garage");
}
}break;
case 2: if(list2.size()==0){
System.out.println("There is no cars waiting in the list");
}
else{
System.out.println("Cars in waiting list"+list2);
System.out.print("Enter your car number");
int removeWaitCar=in.nextInt();
}
break;
}
}
catch(Exception e){
System.out.println("You have entered wrong Index number.please check");
}
break;
case 3:
System.out.println("What do you want to see?" );

40
System.out.println("1.Main garage\n2.Waiting list");
int displayNum=in.nextInt();
try{
switch(displayNum){
case 1:
vehicle carID1=null;
int carList1=0;
for(int h=0;h<list1.size();h++){
carID1=list1.get(h);
carList1=carID1.no;
System.out.println("Park now "+carList1);
}
break;
case 2:
vehicle carID2=null;
int carList2=0;

for(int h1=0;h1<list2.size();h1++){
carID2=list2.get(h1);
carList2=carID2.no;
System.out.println(carList2+" is in the Waiting list now");

}break;
//default: System.exit(0);
}
}
catch(Exception e){
System.out.println("You have enter wrong option number.please check again");

41
}
break;
case 4:
System.out.println("Have a nice day");
default: System.exit(0);
}// switch
}
}
catch(Exception e){
System.out.println(e+"You may have entered a wrong charactor.please check");
}
}
}
class vehicle{
int no;
int mvs;
public vehicle(int abc){
no=abc;
mvs=0;
}
public int incmoves(int x){
return (mvs+x);
}

42
CHAPTER 8

FUTURE ENHANCEMENTS

In near future, the most important use of steganography techniques will probably lie in
the field of digital watermarking. Content providers are eager to protect their copyrighted
works against illegal distribution and watermarks provide a way of tracking the owners of
these materials. Although it will not prevent the distribution itself, it will enable the content
provider to start legal actions against the violators of the copyrights as they can now be
tracked down.

43
CHAPTER-7

REFERENCE
 F.A.P.Petitcolas, R.J.Anderson, M.G.Kuhn, “Information Hiding-A Survey”,
Proceeding of the IEEE, vol. 87, no. 7,June 1999, pp.1062-1078.
 J. J. Chae, B. S. Manjunath, “Data Hiding in Video”,Proceedings of the 6th IEEE
International Conference on Image Processing, 1999, pp.311-315.
 Westfeld A, “F5-A Steganographic Algorithm”, Proceeding of 4th International
Conference on Information Hiding, LNCS 2137, Springer-Verlag, 2001, pp.289-
302.
 J. Anderson Ross A.P. Petitcolas Fabien "On the limits of steganography"
<em>IEEE Journal on Selected Areas in Communications (J-SAC)</em> vol. 16
no. 4 pp. 474-481 May 1998.
 T Mrkel JHP Eloff MS Olivier "An Overview of Image Steganography"
<em>Proceedings of the fifth annual Information Security South Africa
Conference</em> 2005.
 U Kin Tak Zesheng Tang Dongxu Qi "A non-uniform rectangular partition coding
of digital image and its application" <em>Proceedings of the 2009 IEEE
International Conference on Information and Automation</em> pp. 995-999 2009.
 Dongxu Qi Wei Ding Huashan Li "Tangram Algorithm: Image Transformation
For Storing And Transmitting Visual Secrets" <em>Proc. Of the 5th International
Conference on Computer-Aided Design & Computer Graphics</em>
International Academic Publishers vol. 1 pp. 135-139 1997–11.
 Wei Ding Dongxu Qi "Digital Image Transformation and Information Hiding and
Disguising Technology" <em>Chinese J. Computers.</em> vol. 21 no. 9 pp.
838-843 1998.
 <em>Journal of Computer Science and Technology</em> vol. 13 pp. 17-21 1998.

44

You might also like