You are on page 1of 76

SHOULDER SURFING ON

VIBRATION

A PROJECT REPORT

Submitted by

ARIVUKKADAL.E (720714205002)
DHAREN KUMAR S.J (720714205011)
GOWTHAM BISWAS (720714205020)

MOHAMED SAFIK.S (720714205034)

in partial fulfillment for the award of the degree


of

BACHELOR OF TECHNOLOGY
IN

INFORMATION TECHNOLOGY
HINDUSTHAN COLLEGE OF ENGINEERING AND TECHNOLOGY
COIMBATORE-641 032

ANNA UNIVERSITY::CHENNAI 600 025

APRIL 2018
ANNA UNIVERSITY::CHENNAI 600 025

BONAFIDE CERTIFICATE

Certified that this project report “SHOULDER SURFING ON VIBRATION” is


the bonafide work of “ARIVUKKADAL.E (720714205002), DHAREN
KUMAR.S.J (720714205011), GOWTHAM BISWAS (720714205020),
MOKAMED(720714205034) who carried out the project work under my
supervision.

SIGNATURE SIGNATURE
Dr.S.SARAVANASUNDHARAM Mrs.M.INDIRANI M.E.,
M.Tech., Ph.D., SUPERVISOR
HEAD OF THE DEPARTMENT ASSISTANT PROFESSOR
Information Technology Information technology
Hindusthan College of Engineering Hindusthan College of Engineering
and Technology, Coimbatore-32 and Technology, Coimbatore-32

Submitted for the Anna University Project Viva-Voice conducted on ________

INTERNAL EXAMINER EXTERNAL EXAMINER


DECLARATION
We, hereby jointly declare that the project work entitled
“SHOULDER SURFING ON VIBRATION”, submitted to the Anna University
Project Viva voce-April 2018 in partial fulfillment for the award of the degree of
“BACHELOR OF ENGINEERING IN INFORMATION TECHNOLOGY”,
is the report of the original project work done by us under the guidance of
Mrs.M.INDIRANI, M.E., Assistant professor, Department of Information
Technology, Hindusthan College of Engineering and Technology, Coimbatore.
NAME SIGNATURE
ARIVUKKADAL.E
DHAREN KUMAR S.J
GOWTHAM BISWAS

MOHAMED SUFIK.S

I certify that the declaration made by the above candidates are true.

Project Guide,
Mrs.M.INDIRANI, M.E.,
Assistant professor,
Department of IT,
Hindusthan College of Engineering
and Technology, Coimbatore –32
ACKNOWLEDGEMENT
We take this opportunity to express our whole hearted thanks and our
profound respect to all those who guided and inspired us in the completion of this
project work.

We extent our sincere thanks to the Managing Trustee of Hindusthan


Educational and Charitable Trust Thiru.T.S.R.Khannaiyann and the Secretary
Smt. S.R.Sarasuwathi Khannaiyann for providing essential infrastructure.

We would like to reveal our profound thanks to our respected Principal,


Dr.T.Kannadasan, M.E., Ph.D., who happens to be striving force in all
endeavours.

We would like to express our gratitude to the Head of the Department Dr.
S.SARAVANASUNDHARAM, M.Tech., Ph.D., for bringing out the project
successfully and for strengthening the ray of hope.

We would like to express our sincere thanks and deep sense of gratitude to
our Guide Mrs.M.INDIRANI,M.E., Assistant professor Information Technology,
for her valuable guidance, suggestions and constant encouragement which paved
way for the successful completion of the project work.

We express our immense pleasure and thankfulness to our Class Advisor and
Project Coordinator, Mrs.M.INDIRANI, M.E., Head Of The Department, and all
other Faculty members of the Department of Information Technology, technical
staffs and friends delivered us for the successful completion of this project. We
express our earnest gratitude to our family members who encouraged us and
strengthened us in perilous path, encountered during our task.
ABSTRACT

With a one-time valid login indicator and circulative horizontal


and vertical bars covering the entire scope of pass-images, Pass
Matrix offers no hint for attackers to figure out or narrow down
the password even they conduct multiple camera-based
attacks.From the experimental result, the proposed system
achieves better resistance to shoulder surfing attacks while
maintaining usability.
(i)
TABLE OF CONTENTS
CHAPTER PAGE
TITLE
NO NO
ABSTRACT I
LIST OF FIGURES Iv
1 INTRODUCTION 1
1.1 Objective 1
1.2 Problem Definition 1
1.3 Overview of the Project 1
2 LITERATURE SURVEY
3 SYSTEM ANALYSIS 3
3.1 Existing System 3
3.1.1 Disadvantages 3
3.2 Proposed System 3
3.2.1 Advantages 4
3.3 Feasibility Study 4
3.3.1 Economical Feasibility 4
3.3.2 Technical Feasibility 5
3.3.3 Social Feasibility 5
4 SYSTEM ARCHITECTURE 6
5 SYSTEM SPECIFICATION 8
5.1 Hardware Requirements 8
5.2 Software Requirements 8
6 SOFTWARE DESCRIPTION 9
6.1 Front End 9
6.1.1 Eclipse Introduction
6.1.2 History
6.1.3 Features
6.1.4 Hardware
6.1.5 Eclipse Euro
6.1.6 Eclipse Indigo
6.1.7 Eclipse Galileo
6.1.8 Eclipse Juno
6.1.9 Eclipse Mars
6.1.10 Eclipse Ganymede
6.1.11 Eclipse Oxygen
6.1.12 Eclipse Luna
6.2 Back End 10
6.2.1 Sqlite Introduction
6.2.2 Design
7 MODULE DESCRIPTION 14
7.1 Registration Module-1 14
7.2 Registration Module-2 14
7.3 Random Vibration Technique 15
7.4 Forget Password 16
7.5 Image Capture Message
8 SYSTEM DESIGN 17
8.1 Data Flow Diagram 17
8.1.1 User DB Level
8.2 Usecase Diagram 18
8.3 State Chat Diagram 19
8.4 Entity Relationship Diagram 20
8.4.1 ER Symbol Diagram And Notations
8.5 Class Diagram
9 DESIGN PROCESS 21
9.1 Input Design 21
9.2 Output Design 22
9.3 Code Design 23
9.4 Database Design
9.4.1 Registration Table-1
9.4.2 Registration Module-2 25
10 SYSTEM TESTING 27
10.1 Introduction 28
10.2 Requirement Testing
10.2.1 Registration Module-1
10.2.2 Registration Module-2
10.3 Functional Testing
10.4 Unit Testing
11 CONCLUSION AND FUTUREENHANCEMENT 28
APPENDIX A 29
APPENDIX B 40
REFERENCES 44
LIST OF FIGURES

FIGURE NO FIGURE NAME PAGE NO


Fig 4.1 System Architecture 6
Fig 8.1.1 User db Level Diagram 10
Fig 8.2 UseCase Diagram 10
Fig 8.3 State Chart Diagram 11
Fig 8.5 Class Diagram 17
Fig B.1 Registration Module-1 18
Fig B.2 OTP Generation 19
Fig B.3 Registration Module-2
Fig B.4 Random Vibration Technique
Fig B.5 Calculator App
Fig B.6 Forget Password
Fig B.7 Security Question
Fig B.8 Image Capture Message
LIST OF ABBREVIATIONS

 PIN-Personal Identification Number


 GSM-Global System For Mobile
 IDE-Integrated Development Environment
 GPL-General Public License
 EPL-Eclipse Public License
 EDL-Eclipse Distribution License
 EMF-Eclipse Modeling Framework
 GMF-Graphical Modeling Framework
 PRNG-Pseudo-Random Number Generator
CHAPTER 1

INTRODUCTION
1.1 OBJECTIVE

Authentication based on passwords is used largely in applications


for computer security and privacy. With web applications and mobile apps piling
up, people can access these applications anytime and anywhere with various
devices. Attackers can observe directly or use external recording devices to collect
users’ credentials.To overcome this problem, we proposed a novel authentication
system Pass Matrix based on graphical passwords to resist shoulder surfing attacks.

1.2 PROBLEM DEFINITION

It takes a time to get vibrations frequently.It can’t be used in whole


device.it’s working as only a hidding folder.OTP can be send as cost of sim.it’s
work only in the version upto 5.1.

1.3 OVER VIEW OF THE PROJECT

In existence without the proper usage of security or locks in Mobile


Phones which leads to vulnerability of stealing others personal information. This
personal information involves misusing others photo’s, banking details, getting some
important documents being misused by others without proper security scheme. The
problem of security is growing very bad due to smart phone usage.

This project is a mobile application based project to enhance security. ”PIN


SECURITY SCHEME USING HAPTIC FEEDBACK” is a user-friendly software
application. The purpose of this project is to provide a better security, a software
solution that delivers a scalable, secure, and reliable application that maintains and
manages the application details. The following Document will outline the feature of
the “PIN SECURITY SCHEME USING HAPTIC FEEDBACK” and the
requirements that the project will adhere to developing the software for the user
security purpose.
CHAPTER 2

LITERATURE SURVEY

(i) Force feedback is the area of haptics that deals with devices that interact
with the muscles and tendons that give the human a sensation of a force
being applied with hardware and software that stimulates humans sense of
touch and feel through tactile vibrations or force feedback.
(ii) These devices mainly consist of robotic manipulators that push back against
a user with the forces that corresponding to the environment that the virtual
effector’s is in.
(iii) Tactile feedback makes use of devices that interact with the nerve endings
in the skin to indicate heat,pressure and texture.these devices typically have
been used to indicate whether or not the user is in contact with a virtual
object.other tactile feedback devices have been used to stimulate the texture
of a virtual object.

HUMAN SENSE

Typically it is believed thet vision and audition convey the most information
about an environment while the other senses are more subtle.because of this,their
characteristics have been widely investigated over the last few decades by
scientists and engineers,which has led to development of reliable multimedia
systems and environments.

TOUCH

Indeed,the sense of touch is distributed over the entire body,unlike the other
conventional four senses,which are centralized around specific parts of the
body.the sense of touch is mainly associated with active tactile senses such as our
hands.to appreciate the sense of touc more fully,consider the following facts
according to heller and schiff,touch is twenty times faster than vision,so humans
are able to differentiate between two stimuli just 5ms apart,bolanowski et al.found
that touch is highly sensitive to vibration up to 1KHZ,with the peak sensitive to
vibration around 250Hz and skin receptors on the human palm can sense
displacements as low0.2m in length.
CHAPTER 3

SYSTEM ANALYSIS
3.1 EXISTING SYSTEM
One Time Password is available to prevent this attacks that sends
OTP to register E-Mail.
Black and white attack

357 341
426 528
189 769

Same as by keeping a picture instead of numbers is called Black & White Attack.

3.1.1 DRAW BACKS

 Easy to access
 Not secure

3.2 PROPOSED SYSTEM


To enhance resistance to observation attacks the proposed system
uses a haptics feed back system.

Shoulder Surfing Attack

Random method

PSEUDO RANDOM METHOD

2,4,6,8,…

 It is like true but not true.


 It contains a difference of 2 numbers.
 It can be easily identified.
 soo we wont use this method

PURE RANDOM METHOD

 It is organized by natural method.


 So it cant be able to find.
 By our body temperature vibration you can access our mobile,
computer whatever it is.
 It can be used as In hardware also.

3.2.1 ADVANTAGES

 Cant be able to find password


 Easy to implement
 User friendly

3.3 FEASIBILITY STUDY


The feasibility of the project is analyzed in this phase and business
proposal is put forth with a very general plan for the project and some cost
estimates. During system analysis the feasibility study of the proposed system is to
be carried out. This is to ensure that the proposed system is not a burden to the
company. For feasibility analysis, some understanding of the major requirements
for the system is essential.
Three key considerations involved in the feasibility analysis are

 ECONOMICAL FEASIBILITY
 TECHNICAL FEASIBILITY
 SOCIAL FEASIBILITY
3.3.1 ECONOMICAL FEASIBILITY

This study is carried out to check the economic impact that the system will have on
the organization. The amount of fund that the company can pour into the research
and development of the system is limited. The expenditures must be justified. Thus
the developed system as well within the budget and this was achieved because
most of the technologies used are freely available. Only the customized products
had to be purchased.

3.3.2 TECHNICAL FEASIBILITY


This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands on the
available technical resources. This will lead to high demands being placed on the
client. The developed system must have a modest requirement, as only minimal or
null changes are required for implementing this system.

3.3.3 SOCIAL FEASIBILITY

The aspect of study is to check the level of acceptance of the system by


the user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods that
are employed to educate the user about the system and to make him familiar with
it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
CHAPTER 4

SYSTEM ARCHITECTURE

Fig.4.1. System architecture


CHAPTER 5
SYSTEM SPECIFICATION
5.1 HARDWARE REQUIREMENTS
Processor : Intel Pentium Core i5

Hard Disk : 50GB and above

Memory : 4GB

Monitor : monitor resolution of1024*768 or higher

5.2 SOFTWARE REQUIREMENTS

Front End : Java

Operating System : Windows

IDE : Eclipse Luna

5.3 MOBILE REQUIREMENTS

Mobile : Android Smart Phone

RAM : 512MB

Memory Card : 1GB

Operating System : Android


CHAPTER 6

SOFTWARE DESCRIPTION
6.1 FRONT END

6.1.1 ECLIPSE INTRODUCTION

Eclipse is an integrated development environment (IDE) used in computer


programming, and is the most widely used Java IDE. It contains a base workspace and
an extensible plug-in system for customizing the environment. Eclipse is written
mostly in Java and its primary use is for developing Java applications.but it may also
be used to develop applications in other programming languages via plug-ins.it
including Ada, ABAP, C, C++, C#, COBOL, D, Fortran, Haskell, JavaScript, Julia,
Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python.

6.1.2 HISTORY

Eclipse was inspired by the Smalltalk-based VisualAge family of integrated


development environment (IDE) products.Although fairly successful, a major
drawback of the VisualAge products was that developed code was not in a
component-based software engineering model.Eclipse was originally released under
the Common Public License, but was later re-licensed under the Eclipse Public
License. The Free Software Foundation has said that both licenses are free software
licenses, but are incompatible with the GNU General Public License (GPL).The
Eclipse Public License (EPL) is the fundamental license under which Eclipse projects
are released.Some projects require dual licensing, for which the Eclipse Distribution
License (EDL) is available, although use of this license must be applied for and is
considered on a case-by-case basis.
6.1.3 FEATURES

Large Eclipse based products can organize their features into trees starting from the
root feature that represents the entire product.This root feature then includes smaller
units of functionality all the way down to leaf features that list one or more plug-ins
and fragments. The capability to group features hierarchically allows products to be
stacked using a 'Russian doll' approach - a large product can build on top of a smaller
one by including it and adding more features.

6.1.4 HARDWARE:

ECLIPSE is designed from the ground floor up to take advantage of the technology
available in the latest hardware and Windows operating systems. Although ECLIPSE
will run on any computer that has a functional Windows 7, Windows 8, or 2008
Server operatingsystem with all Microsoft Service Packs and updates installed, the
performance of specific features within ECLIPSE may besubstantially reduced with
less than adequate computer hardware. In general, the most efficient and cost-
effective system will resultwith the implementation of medium to high-end servers
and workstations. Ultimately, patient flow, work habits and office volume will dictate
the specific hardware and operating system needs.

6.1.5 ECLIPSE EURO:

Eclipse Europa is the annual release of Eclipse projects in 2007. Like last year
Callisto release, the Europa release is a coordinated release of different Eclipse
project teams. This year, the annual release includes . By releasing these projects at
the same time, the goal is to eliminate uncertainty about version compatibility and
make it easier to incorporate multiple projects into your environment.
6.1.6 ECLIPSE INDIGO:

Eclipse is the annual release of eclipse project on june 22 2011, 62 teams are part of
the release. The Eclipse Foundation has released Eclipse 3.7 (Indigo). Actually,
Indigo is a simultaneous release of dozens of projects including the Eclipse Platform,
Java development tools, source control tools, GUI designers, and more. This is the
eighth successive year in which the Eclipse community has shipped a coordinated
release on schedule.

6.1.7 ECLIPSE GALILEO:

Eclipse Galileo is the annual releaseof Eclipse projects in 2009; this year it includes
33 projects. Eclipse Galileo SR2 Packages. These packages were releasedon
01/14/2015.

6.1.8 ECLIPSE JUNO:

Juno is a 2007 American coming of age comedy-drama independent film directed


by Jason Reitman and written by Diablo Cody. Ellen Page stars as the title character,
an independent-minded teenager confronting an unplanned pregnancy and the
subsequent events that put pressures of adult life onto her. Michael Cera, Jennifer
Garner, Jason Bateman, Allison Janney and J. K. Simmons also star. Filming spanned
from early February to March 2007 in Vancouver, British Columbia. It premiered on
September 8 at the 2007 Toronto International Film Festival, receiving a standing
ovation.

6.1.9 ECLIPSE MARS:


Eclipse Mars, the tenth simultaneous release of Eclipse open source projects, was
delivered to the community by the Eclipse project teams on June 24, 2015. The Mars
release includes a lot of updates to the Eclipse Platform. Significant work went into
improving the fidelity of the the Dark Theme; these improvements drove improved
support for general styling via CSS, and new icons that render much better against the
dark background (and other colours). For Linux users, GTK3 support is much
improved, and for Mac users, the application layout is now standard and ready to be
dropped into the Applications folder. The Perspective customization dialog, which
dropped out of the 4.x stream, is back, and a nested/hierarchical view of projects is
now supported by the Project Explorer. With Mars, all Eclipse packages are
configured to automatically periodically check for updates.

6.1.10 ECLIPSE GANYMEDE:

Eclipse Ganymede is the annual release of Eclipse projects in 2008; this year
including 23 projects. Some highlights of the release include the new p2 provisioning
platform, new Equinox security features, new Ecore modeling tools, support for SOA
and much more. Use the links below to download and discover more about the
projects in the Ganymede release.

6.1.11 ECLIPSE OXYGEN:

The Eclipse Simultaneous Release is the end result of a process that sees the
coordination of scheduling and communication across Eclipse Open Source Project
teams. This year's Eclipse Oxygen is the 12th official simultaneous release; it includes
the hard work from of 83 open source projects, comprising approximately two million
net new lines of code.The output of this process is a composite repository of open
source software, and a new release of the Eclipse IDE. The Eclipse Oxygen release
includes many improvements in functionality and performance, includes new tools for
Java™ code coverage analysis, and can be extended to support Java 9 development
via an early access preview.

6.1.12 ECLIPSE LUNA:

Eclipse Luna includes official support for Java™ 8 in the Java development tools,
Plug-in Development Tools, Object Teams, Eclipse Communication Framework,
Maven integration, Xtext, Xtend, Web Tools Platform, and Memory Analyzer. The
Eclipse compiler includes language enhancements, search and refactoring, Quick
Assist and Clean Up to migrate anonymous classes to lambda expressions and back,
and new formatter options for lambdas.The workbench provides a new dark theme,
split editors, line numbers on by default, reduced whitespace in default presentation,
and ability to hide the "quick access" bar.Sirius allows architects to easily create their
own graphical modeling workbenches by leveraging the Eclipse modeling
technologies, including Eclipse Modeling Framework (EMF) and Graphical Modeling
Framework (GMF)

6.2 BACK END

6.2.1 SQLITE INTRODUCTION

SQLite is an in-process library that implements a self-contained, serverless, zero-


configuration, transactional SQL database engine. The code for SQLite is in the
public domain and is thus free for use for any purpose, commercial or private. SQLite
is a relational database management system contained in a C programming library. In
contrast to many other database management systems, SQLite is not a client–server
database engine. Rather, it is embedded into the end program.
6.2.2 DESIGN

The Schema Design is a visual interface where tables and table structures can be
defined, displayed and manipulated. The Schema Designer provides a convenient
graphical way to perform common operations as an alternative to the menu-based way
of operation that was always supported. Also the Schema Designer provides a
graphical overview of databases.

i. SQLite4 is a compact, self-contained, zero-adminstration, ACID database engine in


a library, just like SQLite3, but with an improved interface and file format.
ii. The run-time environment is encapsulated in an object.
iii. A greatly simplified Key/Value storage engine is used:

 A single large key space - not separate key spaces for each table
and index as in SQLite3.
 Keys sort in lexicographical order.
 Multiple storage engines, interchangeable at run-time.
 Default on-disk storage engine uses a log-structured merge
database.

iv. The PRIMARY KEY of a table really is used as the key to the storage engine.
v. Decimal arithmetic is used.
vi. Foreign key constraints and recursive triggers are on by default.
vii. Covering indices can be declared explicitly.
CHAPTER 7

MODULE DESCRIPTION

The project is about the PIN security scheme using Haptic Feedback. The
objective of this application is to find whether the existing app locks are secured are
not. This is done byrandom vibration using Sqlite. This is used to count the registered
PIN with the vibration.These are the modules of PIN security scheme using Haptic
feedback.

 Registration Module-1
 Registration Module-2
 Random Vibration Technique
 Forget Password
 Image Capture Message

7.1.1 REGISTRATION MODULE-1

The user need to register the required details to know that the required person use
the mobile Username, mail-id and the recovery phone number is set first and stored in
the Database after the completion of first page, The second page with further details
get displayed by clicking next.

7.1.2 REGISTRATION MODULE-2

An OTP is sent to the registered number after submitting the first page. Enter the
OTP, if you enter any number randomly you will get a error message that your OTP is
wrong. You are able to enter the password the limit of the password is restricted only
to 4digit, the security question can be entered by the user and the security answer is
also set by the user all the details are stored in the Database by clicking next.

7.1.3 RANDOM VIBRATION TECHNIQUE

From the registration module-2 we have saved a password Forthe password for
each pin we get vibration between (1-5)times. Enter the pin after the vibration stops
then the vibration starts for the second pin this step repeats for each registered pin.
After the pin is entered. Press entered. If the password and the vibration matches if the
pin that we have entered is right then we go to the next module the app which is
secured will display.

7.1.4 FORGET PASSWORD

If the password is wrong we will get the forgot password the security question
which we have registered is displayed in forgot password enter the correct answer for
that question the password that we have saved is sent to the registered number.

7.1.5 IMAGE CAPTURE MESSAGE

In this module, if anyone sees our generated one time password and then they try to
retype and unlock any app, then their image will be captured and sent to registered mobile
number. So misusing of our mobile by others can be easily identified.
CHAPTER 8

SYSTEM DESIGN
8.1 DATA FLOW DIAGRAM

A data flow diagram(DFD) is a graphical representation of the “flow” of data throught


an information system, modelling its process aspect. Often they are a preliminary step
used to create an overview of the system which can later be elaborated. DTD’s can
also be used for the visualization of data processing.

USER DB LEVEL

Fig.8.1.1user db level

8.2 USECASE DIAGRAM

A Use case is a list of steps, typically defining interactions between a role and a
system, to achieve a goal. Actors must be able to make decisions, but need not be
human. An actor might be a person, a company or organization, a computer program,
or computer system hardware, software or both. The Elliptical shape in the use case
diagram represents the step by step activities involved in the project. This helps us to
get the overall flow of the project. The arrow line represents the links between the
actor and activity that is happening within the system. By the actors, activity, and
links one can get the overall structure of the application.

Fig.8.2.1 use case diagram

8.3 STATE CHART DIAGRAM

A state diagram shows the behaviour of classes in response to external stimuli.

Specifically a state diagram describes the behaviour of a single object in response to a


series of events in a system. Sometimes it is also known as a Harel state chart or a
state machine diagram.
Fig.8.3.1 State chart diagram

8.4 ENTITY RELATIONSHIP DIAGRAM

An entity-relationship diagram (ERD) is a graphical representation of an


information system that shows the relationship between people, objects, places,
concepts or events within that system.

8.4.1 ER SYMBOL DIAGRAM AND NOTATIONS

ENTITY RELATIONSHIP DIAGRAM

Entity-Relationship Diagrams (ERDs) illustrate the logical structure of database. An


Entity Relationship Diagram (ERD) is a visual representation of different data using
conventions that describe how these data are related to each other. While able to
describe just about any system, ER diagrams are most often associated with complex
databases that are used in software engineering and IT networks. In particular, ER
diagrams are frequently used during the design stage of a development process in
order to identify different system elements and their relationships with each other.
Figure 8.4.1 OVERALL ER DIAGRAM The diagram briefs the ER diagram of the
system where the relation between the admin, user, trainee, doctors, sponsors is
explained in detail which can be viewed by defining the process.

Entity Attribute Relationship

RELATIONSHIP:A relationship describes how entities interact. For example,


the Entity “Carpenter” may be related to the entity “table” by the relationship “builds” or
“makes”. Relationships are represented by diamond shapes and are labelled using verbs.
8.5 CLASS DIAGRAM

The class diagram is a static diagram. It represents the Static view of an


application. Class diagram is not only used for visualizing, describing and documenting
different aspect of a system but also for constructing executable code for the software
application. The class diagram describes the attribute and the operations of a class and
also the constrains imposed on the system.

Fig.8.5 Class Diagram


The class diagram are most widely used in modelling of object oriented
system because they are the only UML diagrams which can be mapped directly with
object oriented language. The class diagram shows a collection of classes ,interface,
association, collaboration and constrains. It is also known as structural diagram. The
purpose of class diagram is to model the static view of an application. The class diagram
are the only diagram which can be directly mapped with object oriented language and
thus widely used at the time of construction. The figure 8.5 shows the class diagram of
the application.
CHAPTER 9

DESIGN PROCESS
9.1 INPUT DESIGN

Input design is the process of converting the user-oriented Input to a computer based
format. The goal of the input design is to make the data entry easier, logical and free
error. Errors in the input data are controlled by the input design. The quality of the
input determines the quality of the system output.

The entire data entry process is interactive in nature, so that the user can directly enter
into data according to the prompted messages. The users also can directly enter into
data according to the prompted messages. The users are also provided with option of
selecting an appropriate input from a list of values. This will reduce the number of
error, which are otherwise likely to arise if they were to be entered by the user itself.

Input design is one of the most important phase of the system design. Input design is
the process where the input received in the system are planned and designed, so as to
get necessary information from the user, eliminating the information that is not
required. The aim of the input design is to ensure the maximum possible levels of
accuracy and also ensures that the input is accessible that understood by the user. The
input design is the part of overall system design, which requires very careful attention.
If the data going into the system is incorrect then the processing and output will
magnify the errors.

9.2 OUTPUT DESIGN

The output form of the system is either by screen. Output design aims at generating
the results of the processing of the users. The reports are generated to suit the needs of
the users. The reports have to be generated with appropriate levels.. As its web
application output is designed in a very user-friendly this will be through screen most
of the time.

9.3 CODE DESIGN

The main purpose of code design is to simplify the coding and to achieve better
performance and quality with free of errors. The coding is prepared in such a way that
the internal procedures are more meaningful validation manager is displayed for each
column.

The coding of the variables is done in such a way that one other than person who
developed the packages can understand its purpose. To reduce the server load, the
project is designed in a way that most of the Validation of fields is done as client side
validation, which will be more effective.

9.4 DATABASE DESIGN

Database design is the process of 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. A fully attributed data model
contains detailed attributes for each entity. 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 base data
structures used to store the data.

In the relational model these are the tables and views. In an object database the
entities and relationships map directly to object classes and named relationships.
However, the term database design could also be used to apply to the overall process
of designing, not just the base data structures, but also the forms and queries used as
part of the overall database application within the database management system
(DBMS). The process of doing database design generally consists of a number of
steps which will be carried out by the database designer. The Database Design
includes:

i. Determine the purpose of the database - This helps prepare for the remaining
steps.
ii. Find and organize the information required - Gather all of the types of
information to record in the database, such as product name and order number.
iii. Divide the information into tables - Divide information items into major entities
or subjects, such as Products or Orders. Each subject then becomes a table.
iv. Turn information items into columns - Decide what information needs to stored
in each table. Each item becomes a field, and is displayed as a column in the table.
For example, an Employees table might include fields such as Last Name and Hire
Date.
v. Specify primary keys - Choose each table’s primary key. The primary key is a
column that is used to uniquely identify each row. An example might be Product
ID or Order ID.
9.4.1 REGISTRATION TABLE-1
It is user to store the required details that is mentioned in the module
Table7.1 for registration modeule-1

FIELD TYPE NULL DEFAULT


User name Varchar(50) No Null
E mail-id Varchar(50) No Null
Ph num Varchar(10) No Null

7.4.2 REGISTRATION MODULE-2

It is user to store the required details that is mentioned in the module.

Table 7.2 for registration modeule-2

FIELD TYPE NULL DEFAULT


OTP Varchar(4) No Null
Pin number Varchar(4) No Null
Security Varchar(10) No Null
Question
Security Varcgar(10) No Null
answer
CHAPTER 10

SYSTEM TESTING

10.1 Introduction

Testing is the most important phase in the software development activity. In


software development life cycle (SDLC), the main aim of the testing process is the
quality the developed software is tested against attaining the required functionality
and performance.

During the testing process the software is worked with some particular test case
and the output of the test cases are analyzed whether the software us working
according to the expectations or not.

The success of the testing process in determining the error is mostly depends upon
the test case criteria, for testing any software we need to have a description of the
expected behaviour of the system and method of determining whether the observed
behaviour confirmed to the expected behaviour.

10.2 Requirement Testing

Not every testing is done after the completion of the project code; some of them are
done throughout the development process while some of them are done before the
commencement of the project.

Requirement testing is one of the kind where testing is done before the
commencement of the project. Before commencing the project, requirements listed
out by the client are checked for its feasibility.

10.2.1 REGISTRATION MODULE-1


Table: 10.1 Requirement test case

S.NO INPUT DESCRIPTION EXPECT PASS/FAIL


RESULT
1. Enter User_name User_name Pass
Username Must be given Should not be
By the user Empty
2. Enter e-mail-id e-mail-id Pass
Email-id must be given y the
should
by not be
the user empty
3. Enter Mobile number Mobile number Pass
Mobile Should be given Should not be
Number By the user empty
10.2.2 REGISTRATION MODULE-2

Table: 10.2 Requirement test case

S.NO INPUT DESCRIPTION


EXPECT PASS/FAIL
RESULT
1. Enter OTP OTP will sent OTP should Pass
By the user Not be empty
2. Enter password Password will Password pass
Be set by the Should not be
User Empty
3. Enter security Security Security Pass
Question Question will Question
Be set by user Not be empty
4. Security answer Security Security Pass
Must not be Answer will Answer must
empty Be set the Empty
user

10.3 Functional Testing

All the functions in the project are tested as indicated in the Table: 8.3 against the
requirements to ensure that the product conforms to what was specified. Then the
functionality of each process is checked by testing with both valid and invalid data;
and checking the proper error handling.

s.no Input description Expect Pass/fail


result
1. Empty user All details Enter user Pass
Name and fill Should be name
box Filled
2. Empty e-mail All details Enter the Pass
And fill other Should be e-Mail id
List box Filled
3. Empty security All details Enter security Pass
Question and Should be question
Fill other Filled
List box
4. Empty security All details Enter Pass
Answer and fill Should be Security
Other list box Filled Answer
5. Empty mobile All the details Enter Pass
Number and Should be The Mobile
Fill other Filled number
detalis

Table: 10.3 Functional Test Case

10.3.1 Unit Testing

A unit is the smallest testable part of an application. The goal of the unit testing is
to isolate each part of the program and show that the individual parts are correct.
Once a method, function or class is created it is checked for erroneous data. If it is
found, it can be re-factored. Each and every unit as indicated in the Table: 10.3.1 is
checked for errors at the time of creation and all the test cases are passed.

Table: 8.3.1 Unit Test Case

s.no Input description Expect Pass/fail


result
1. Empty user Username Enter user Pass
name Password name
Should be
given
2. Empty e-mail e-mail Enter the pass
id should be Email-id
given
3. Empty phone Phone number Enter the Pass
number Should be Phone number
given
4. Empty OTP OTP should Enter Pass
Be given OTP
5. Empty Password Enter Pass
password Should be password
given
6. Empty Security Enter the pass
Security Question Security
question Should be question
Given
CHAPTER-11

CONCLUSION AND FUTURE ENHANCEMENT

11.1 CONCLUSION

The project PIN security scheme using Haptic feedback is very simple in design and
to implement. The mobile requires very low resources and works in almost all
configurations and its interface is very user-friendly. It include registration of the user,
then the random vibrations are counted which is added with already existing PIN and
new password is generated every time. The generated new password is been typed to
unlock an app.

11.2 Future Enhancement

 Same Mobile application can be developed for others Mobile operating systems such
as Windows, iOS etc.
 Existing software is developed for Mobile phones of Android operating system with
lollipop version and below. Same app can be developed for higher android version.
 In our current project, we have added security only for the calculator application. In
future, the user could able to select any applications available in his mobile phone, so
the selected applications can be secured.
APPENDICES-A

Appendix 1: Source Code

Registration module: 1

package com.example.hapticpin;

import java.util.List;

import java.util.Random;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsManager;

import android.text.TextUtils;

import android.util.Log;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.view.View.OnClickListener;
import android.view.ViewGroup;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class RegisterActivity extends Activity {

EditText UserName,PhoneNo,E_EmailId;

Button SaveButton;

PasswordModel PasswordModel =new PasswordModel();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.openinglayout);

LocalDBHelper createOrderTab = new LocalDBHelper(this);

createOrderTab.getWritableDatabase();

DataBaseManager.initializeInstance(createOrderTab);

UserName = (EditText) findViewById(R.id.UserName);

E_EmailId = (EditText) findViewById(R.id.E_EmailId);


PhoneNo = (EditText) findViewById(R.id.PhoneNo);

SaveButton= (Button) findViewById(R.id.SaveButton);

LayoutInflater inflater = getLayoutInflater();

View layout = inflater.inflate(R.layout.custom_toast, (ViewGroup)

findViewById(R.id.toast_layout_root));

TextView text = (TextView) layout.findViewById(R.id.toastText);

text.setText("Haptic Pin Advance Security Syatem");

Toast t = new Toast(getApplicationContext());

t.setDuration(Toast.LENGTH_LONG);

t.setView(layout);

t.setGravity(Gravity.CENTER|Gravity.CENTER_VERTICAL, 0, 0);

t.show();

SaveButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

int temp=0;

String otpdata="";

for (int i = 0; i < 4; i++) {


temp = passwordGenerator();

otpdata=otpdata+temp;

Log.i("temp", otpdata);

if(emailValidator(E_EmailId.getText().toString()))

if(isIs_mob_number(PhoneNo.getText().toString())){

SmsManager smsManager = SmsManager.getDefault();

try {

smsManager.sendTextMessage(PhoneNo.getText().toString(), null,

otpdata, null,null);

} catch (Exception e) {

e.printStackTrace();

Log.i("Otp",otpdata);

Intent intent = new Intent(RegisterActivity.this,

Regester.class);

intent.putExtra("Otp", otpdata);
intent.putExtra("PhoneNumber", PhoneNo.getText().toString());

intent.putExtra("UserName", UserName.getText().toString());

intent.putExtra("E_EmailId", E_EmailId.getText().toString());

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK

| Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

}else {

Toast.makeText(getApplicationContext(),"Phone number is not


valid",Toast.LENGTH_SHORT).show();

Log.i("temp", "Success");

}else {

Toast.makeText(getApplicationContext(),"Email Id is not
valid",Toast.LENGTH_SHORT).show();

}}});}

public boolean emailValidator(String email)

Pattern pattern;

Matcher matcher;
final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-
9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";

pattern = Pattern.compile(EMAIL_PATTERN);

matcher = pattern.matcher(email);

return matcher.matches();

public boolean isIs_mob_number(String phone) {

boolean is_mob_number=false;

Pattern pattern = Pattern.compile("\\d{10}");

Matcher matchr = pattern.matcher(phone.trim());

if (matchr.matches()) {

is_mob_number = true;

else

is_mob_number = false;

return is_mob_number;
}

public int passwordGenerator() {

Random rand = new Random();

int x = rand.nextInt(6);

if (x == 0) {

x = 1;

// Log.i("x", "x" + x);

return x;

REGISTRATION MODULE 2:

package com.example.hapticpin;

import java.util.List;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsManager;

import android.util.Log;
import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class Regester extends Activity {

EditText otp,E_PhoneNumber,E_Password,Answer,Question;

Button SaveButton;

PasswordModel PasswordModel =new PasswordModel();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.regeister);

LocalDBHelper createOrderTab = new LocalDBHelper(this);

createOrderTab.getWritableDatabase();

DataBaseManager.initializeInstance(createOrderTab);

otp = (EditText) findViewById(R.id.otp);

E_Password = (EditText) findViewById(R.id.E_Password);


Answer = (EditText) findViewById(R.id.Answer);

Question = (EditText) findViewById(R.id.Question);

SaveButton= (Button) findViewById(R.id.SaveButton);

SaveButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

String Otp = getIntent().getStringExtra("Otp");

String PhoneNumber = getIntent().getStringExtra("PhoneNumber");

String UserName= getIntent().getStringExtra("UserName");

String E_EmailId = getIntent().getStringExtra("E_EmailId");

Log.i("size",Otp);

if(checkDataValid(otp.getText().toString()))

if(Otp.endsWith(otp.getText().toString()))

if(checkDataValid(E_Password.getText().toString())

&&checkDataValid(Question.getText().toString())

&&checkDataValid(Answer.getText().toString()))
{

if(E_Password.getText().toString().trim().length()==4)

PasswordModel.setEmailId(E_EmailId);

PasswordModel.setNumber(PhoneNumber);

PasswordModel.setNewPassword(E_Password.getText().toString());

PasswordModel.setSecretQa(Question.getText().toString());

PasswordModel.setSecretAns(Answer.getText().toString());

PasswordModel.setOldPassword("");

PasswordDal.insertDetailsIntoLocalDB(PasswordModel);

else

Toast.makeText(getApplicationContext(),"Password must have 4


values",Toast.LENGTH_SHORT).show();

else
{

Toast.makeText(getApplicationContext(),"Enter the All the


fields",Toast.LENGTH_SHORT).show();

try {

Log.i("size","size"+PasswordDal.getNewsInformation().get(0).getOldPassword());

} catch (Exception e) {

e.printStackTrace();

Intent intent = new Intent(Regester.this,MainActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK

| Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

else

Toast.makeText(getApplicationContext(),"Otp is
Wrong",Toast.LENGTH_SHORT).show();

}}
else

Toast.makeText(getApplicationContext(),"Enter the
OTP",Toast.LENGTH_SHORT).show();

}}});}

public Boolean checkDataValid(String Data){

if(Data.trim().length()>0)

return true;

else

return false;

}}}

FORGOT PASSWORD

package com.example.hapticpin;

import android.app.Activity;

import android.content.Intent;
import android.os.Bundle;

import android.telephony.SmsManager;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class ForgotPassword extends Activity {

EditText otp,E_PhoneNumber,E_Password,Answer,Question;

Button SaveButton;

TextView question;

PasswordModel PasswordModel =new PasswordModel();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.forgotpassword);
LocalDBHelper createOrderTab = new LocalDBHelper(this);

createOrderTab.getWritableDatabase();

DataBaseManager.initializeInstance(createOrderTab);

question = (TextView) findViewById(R.id.question);

Answer = (EditText) findViewById(R.id.Answer);

SaveButton= (Button) findViewById(R.id.SaveButton);

try {

question.setText(PasswordDal.getNewsInformation().get(0).getSecretQa());

Log.i("gggg",PasswordDal.getNewsInformation().get(0).getSecretQa());

} catch (Exception e1) {

e1.printStackTrace();

SaveButton.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

try {
if(PasswordDal.getNewsInformation().get(0).getSecretAns().endsWith(Answer.getText().
toString()))

SmsManager smsManager = SmsManager.getDefault();

try {

smsManager.sendTextMessage(PasswordDal.getNewsInformation().get(0)

.getNumber(), null,PasswordDal

.getNewsInformation().get(0).getNewPassword(), null,null);

Intent intent = new Intent(ForgotPassword.this,MainActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK

| Intent.FLAG_ACTIVITY_CLEAR_TASK);

startActivity(intent);

} catch (Exception e) {

e.printStackTrace();

}}

else

Toast.makeText(getApplicationContext(),"Wrong
Answer",Toast.LENGTH_SHORT).show();
}

} catch (Exception e) {

e.printStackTrace();

}}});}}

RANDOM VIBRATION:

package com.example.hapticpin;

import android.app.Activity;

import android.os.Bundle;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class WebView extends Activity {

Button button0 , button1 , button2 , button3 , button4 , button5 , button6 ,


button7 , button8 , button9 , buttonAdd , buttonSub , buttonDivision ,

buttonMul , button10 , buttonC , buttonEqual ;

EditText edt1 ;

float mValueOne , mValueTwo ;

boolean mAddition , mSubtract ,mMultiplication ,mDivision ;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.webview);

button0 = (Button) findViewById(R.id.button0);

button1 = (Button) findViewById(R.id.button1);

button2 = (Button) findViewById(R.id.button2);

button3 = (Button) findViewById(R.id.button3);

button4 = (Button) findViewById(R.id.button4);

button5 = (Button) findViewById(R.id.button5);

button6 = (Button) findViewById(R.id.button6);

button7 = (Button) findViewById(R.id.button7);

button8 = (Button) findViewById(R.id.button8);


button9 = (Button) findViewById(R.id.button9);

button10 = (Button) findViewById(R.id.button10);

buttonAdd = (Button) findViewById(R.id.buttonadd);

buttonSub = (Button) findViewById(R.id.buttonsub);

buttonMul = (Button) findViewById(R.id.buttonmul);

buttonDivision = (Button) findViewById(R.id.buttondiv);

buttonC = (Button) findViewById(R.id.buttonC);

buttonEqual = (Button) findViewById(R.id.buttoneql);

edt1 = (EditText) findViewById(R.id.edt1);

LayoutInflater inflater = getLayoutInflater();

View layout = inflater.inflate(R.layout.custom_toast,

(ViewGroup) findViewById(R.id.toast_layout_root));

// get the TextView from the custom_toast layout

TextView text = (TextView) layout.findViewById(R.id.toastText);

text.setText("Successfully Logged In.");

Toast t = new Toast(getApplicationContext());

t.setDuration(Toast.LENGTH_LONG);

t.setView(layout);
t.setGravity(Gravity.CENTER | Gravity.CENTER_VERTICAL, 0, 0);

t.show()

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"1");

});

button2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"2");

});

button3.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"3");
}

});

button4.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"4");

});

button5.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"5");

});

button6.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"6");
}

});

button7.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"7");

});

button8.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"8");

});

button9.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {


edt1.setText(edt1.getText()+"9");

});

button0.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+"0");

});

buttonAdd.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (edt1 == null){

edt1.setText("");

}else {

mValueOne = Float.parseFloat(edt1.getText() + "");

mAddition = true;
edt1.setText(null);

});

buttonSub.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mValueOne = Float.parseFloat(edt1.getText() + "");

mSubtract = true ;

edt1.setText(null);

});

buttonMul.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mValueOne = Float.parseFloat(edt1.getText() + "");

mMultiplication = true ;

edt1.setText(null);
}

});

buttonDivision.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mValueOne = Float.parseFloat(edt1.getText()+"");

mDivision = true ;

edt1.setText(null);

});

buttonEqual.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

mValueTwo = Float.parseFloat(edt1.getText() + "")

if (mAddition == true){

edt1.setText(mValueOne + mValueTwo +"");

mAddition=false;
}

if (mSubtract == true){

edt1.setText(mValueOne - mValueTwo+"");

mSubtract=false;

if (mMultiplication == true){

edt1.setText(mValueOne * mValueTwo+"");

mMultiplication=false;

if (mDivision == true){

edt1.setText(mValueOne / mValueTwo+"");

mDivision=false;

});

buttonC.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

edt1.setText("");

});

button10.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

edt1.setText(edt1.getText()+".");

}}}
APPENDIX-B

SCREEN SHOT

REGISTRATION MODULE-1
OTP GENERATION:
REGISTRATION MODULE-2
RANDOM VIBRATION TECHIQUE
CALCULATOR APP
FORGET PASSWORD
SECURITY QUESTION:
IMAGE CAPTURE MESSAGE:

You might also like