Professional Documents
Culture Documents
MULTI IMAGE CRYPTOGRAPHIC BASED TWO FACTOR AUTHENTICATION IN BANKING SYSTEMS AND SERVICES-THESIS PAPER-Batch09
MULTI IMAGE CRYPTOGRAPHIC BASED TWO FACTOR AUTHENTICATION IN BANKING SYSTEMS AND SERVICES-THESIS PAPER-Batch09
A PROJECT REPORT
Submitted by
HARIHARAN A (310617104037)
KESHAV N(310617104046)
DEEPAK KUMAAR M (310617104303)
BACHELOR OF ENGINEERING
in
COMPUTER SCIENCE AND ENGINEERING
BONAFIDE CERTIFICATE
Certified that this project report “Multi Image Cryptographic based Two
Factor Authentication in Banking Systems and Services” is the bonafide
work of “HARIHARAN A(310617104037), KESHAV N (310617104046),
DEEPAK KUMAAR M (310617104303)” who carried out the project work
under my supervision.
Dr.K.M.ANANDKUMAR Ms.S.BHUVANESWARI
INTERNALEXAMINER EXTERNALEXAMINER
3
CERTIFICATE OF EVALUATION
Name of the
Title of the
S. No Name of the Students Supervisor with
Project
Designation
HARIHARAN A
1.
(310617104037)
MULTI IMAGE
2. CRYPTOGRAPHIC
KESHAV N BASED TWO
Ms.S.BHUVANESWARI
(310617104046) FACTOR ASSOCIATE PROFESSOR
AUTHENTICATION
IN BANKING
SECTOR &
SERVICES
DEEPAK KUMAAR M
3.
(310617104303)
The report of the project work submitted by the above students in partial
fulfillment for the award of Bachelor of Engineering Degree in Computer
Science and Engineering of Anna University were evaluated and confirmed
to be a report of the work done by the above students.
The viva voce examination of the project work was held on 28.04.2021
INTERNALEXAMINER EXTERNALEXAMINER
4
ACKNOWLEDGEMENT
ABSTRACT
Online Banking Sectors are now one of the major & primary platforms for money
transactions. In this high data driven world where there is a high risk involved in
exploitment user’s resources and data , banking services must be upgraded with high
security. Due to unavoidable hacking of the databases on the Internet, it is always
quite difficult to trust the information on the Internet. To solve this problem of
authentication, we are proposing an algorithm based on image processing and visual
cryptography. This paper proposes a technique of processing the signature of a
customer and then dividing it into shares. Total number of shares to be created is
depending on the scheme chosen by the bank. When two shares are created, one is
stored in the bank database and the other is kept by the customer.There are security
measures like One Time Passwords for Authentication. It is an effective method , but
there is a chance of the bank holder’s mobile phone getting compromised by the
Hacker. In order to secure a Bank Authentication , two factor authentication is
implemented where image processing technique is used along with algorithms and
methods such as Multi Level Encryption Algorithm and Magic Least Significant Bit
Algorithm . So , for the First Factor Authentication Relevance Feedback
Accumulation Algorithm is used for Validating the User’s Credential is TRUE or
FALSE by comparing the Indexed value to the Bank Database registered by the user.
And , for the Second Factor Authentication Multi Level Encryption Algorithm and
Magic Least Significant Bit Method is used . MLEA Algorithm is used to convert a
plaintext to ciphertext and this ciphertext is embedded in an image using the Magic
LSB method .
6
TABLE OF CONTENTS
4.3 XAMPP 22
4.4 Modular Implementation 24
4.4.1 User Registration 24
4.4.2 User Credentials Update 25
4.4.3 User Login 25
4.4.4 Image Choosing Grid 26
4.4.5 First Image Authentication 26
4.4.5.1 Login Successful Webpage 27
4.4.5.2 Authentication Error 28
4.4.6 Second Image Authentication 28
4.4.6.1 Login Successful Webpage 29
4.4.6.2 Authentication Error 29
8
5.3 PerformanceAnalysis 32
5.3.1 PSNR Value of Images 33
5.3.2Comparison of Algorithms 33
& Line Graph Analysis
5.4 Source Codes 35
5.5 Summary 34
6. CONCLUSION AND FUTURE WORK 35
6.1 Conclusion 35
6.2 FutureWork 35
APPENDIX 48
REFERENCES 71
9
LIST OF ABBREVIATIONS
CHAPTER 1 INTRODUCTION
1.1 GENERAL
Nowadays, the banking system has been more accessible than ever to
perform essential duties e.g online transfer, change account information without
having the need to visit nearby banks and perform all of them online. While the
online access to banking functionality for users has given great flexibility but it
requires sufficient security provided by the banking company to help protect
from unauthorized access to user's accounts and also help the user to perform his
activity securely maintaining the privacy. The objective of this project is to
design such banking applications securely with multi image encryption
technique according to design guidelines as image based encryption cannot be
told or shared with any other as it is a visual memory and as well perform
security testing to expose the vulnerabilities. In the following sections, users of
the system and their functionality is presented. Steganography and Cryptography
both techniques are used for data confidentiality.
algorithm is very simple and efficient, which is suitable for practical image
encryption.
1.3 OBJECTIVES
CHAPTER 2
LITERATURE SURVEY
2.1 GENERAL
Aaditya Jain and Sourabh Soni [2], discussed the Visual Cryptography
and Image Processing based Approach for Secure Transactions in Banking
Sector.Two gray images is taken as input and preprocessed and then
concatenated.Further, they are divided into two shares and secret image is
constructed from the generated shares. For secure Banking Transaction in
joint account operation this paper proposed a method that is based on (2,
2)-VCSXOR.
Adel Khelifi , Maher Aburrous , Manar Abu Talib , P.V.S. Shastry [7],
discussed the Enhancing Protection Techniques of E-Banking Security
Services Using Open Source Cryptographic Algorithms. the most widely
used algorithms appear to be two-key triple DES and RC4 for symmetric
15
The existing system uses either pin numbers or OTP based systems which
can be hacked into easily and also is ineffective. The PIN is readable by all and
can easily be lost or taken if the person’s phone is taken. The OTP can easily be
bypassed by even amateur hackers and easily take away the bank accounts. The
fraudulent callers can take away PIN and OTP from innocent customers.
CHAPTER 3
SYSTEM DESIGN
3.1 GENERAL
This chapter deals with design documents created for the proposed system
whichconsistsoffunctionalarchitectureandactivitydiagrametc.Duringdetailed
design, the internal logic of all the modules specified in the system design is
decided. The system architecture deals with the components to be used in the
proposed system which explains its interaction with one other. The data flow
diagram describes the graphical representation of how the data flows between the
different modules in the system. The data flow diagram gives a very clear picture
of the flowofdataamongtheworkingmodules.The Design Documents Reused as a
continuous reference point for further system development and coding.
18
same time, this approach does not let administrators change Validation Rules.
To avoid these problems, we provide a special Validation module. This module
allows for the easy and effective control of user input. There are certain
validation rules for user validation and based on that rules the data to be
validated is treated. The user input is checked with the stored data and validated
if it matches and the access is granted for transaction.
22
After the successful first factor image authentication , the second factor image
authentication begins and the user will be redirected to the new page in which
the user has only one attempt to click the region click and if the user fails to
click the correct region , the user won't be allowed to access the user dashboard
page . The Authentication is successful only if the user correctly clicks the
region click in one attempt.
Language: Python
Server : XAMPP
3.6 SUMMARY
This chapter gives an overview of system design and its importance in the
23
software life cycle. The functional architecture gives the entire functionality of
the proposed system along with its modular structure and its interactions
between the modules.
CHAPTER 4
SYSTEM IMPLEMENTATION
4.1 GENERAL
4.1.1.2Robust StandardLibrary
Its large and robust standard library makes Python score over other
25
4.3 XAMPP
XAMPP is an abbreviation where X stands for Cross-Platform, A stands for
Apache, M stands for MYSQL, and the Ps stand for PHP and Perl, respectively. It
is an open-source package of web solutions that includes Apache distribution for
many servers and command-line executables along with modules such as
Apache server, MariaDB, PHP, and Perl.
XAMPP helps a local host or server to test its website and clients via computers
and laptops before releasing it to the main server. It is a platform that furnishes a
suitable environment to test and verify the working of projects based on Apache,
Perl, MySQL database, and PHP through the system of the host itself. Among
these technologies, Perl is a programming language used for web development,
PHP is a backend scripting language, and MariaDB is the most vividly used
database developed by MySQL.
Advantages of XAMPP:
It is free and easy to use and easily available for Windows, Linux and Mac OS .
It is a beginners friendly solution package for full stack web development.
It is a open source software package which gives a easy installation experience.
26
It is very simple and lightweight to create set up for development, testing and
deployment.
It is a time-saver and provides several ways for managing configuration changes.
It handles many administrative tasks like checking the status and security.
Software components of XAMPP:
Apache plays the role of processing the HTTP request. It is the actual default
web server application. It is the most popular web servers maintained by Apache
Software Foundation.
MySQL The role of database management system in XAMPP is played by
MySQL. It helps to store and manage collected data very efficiently. It is an
open-source and most popular.
PHP is the server-side scripting language which stand for Hypertext
Preprocessor. It is embedded with HTML code which interacts with the
webserver. It is an open-source and work well with MySQL and has become a
common choice for web developers.
Perl is the high-level programming language designed for text editing which
serves purpose like web development and network programming.
During the installation process, select the required components like MySQL,
FileZilla ftp server, PHP, phpMyAdmin or leave the default options and click the
Next button.
Uncheck the Learn more about bitnami option and click Next button.
Choose the root directory path to set up the htdocs folder for our applications.
For example ‘C:\xampp’.
Click the Allow access button to allow the XAMPP modules from the Windows
firewall.
After the installation process, click the Finish button of the XAMPP Setup wizard.
Now the XAMPP icon is clearly visible on the right side of start menu. Show or
Hide can be set by using the control panel by clicking on the icon.
To start Apache and MySql, just click on the Start button on the control panel.
Note: Suppose Apache is not starting, it means some other service is running at
port 80. In this case, stop the other service temporarily and restart it.
28
Making a server request: Open your web browser and check whether the
XAMPP service has properly installed or not. Type in the URL: http://localhost. If
you are able to see the default page for XAMPP, you have successfully installed
your XAMPP Server.
To Check if PHP is Working: All the website related files are organized in a folder
called htdocs and then run index.php file by using http://localhost/index.php or
http://localhost.
Note: For every new website or application, it's always better to create a different
folder inside htdocs, to keep it organized and avoid confusion.
For example, if we create a folder geeksforgeeks and then create a file named
‘helloWorld.php’. All the contents related to it are put inside the folder
‘geeksforgeeks’. So the root ‘URL’ of the website will be
‘http://localhost/geeksforgeeks/’. So any home page is accessed by typing the
root URL in the browser. To see the output, just type
‘http://localhost/geeksforgeeks/helloWorld.php’.
4.5 SUMMARY
` CHAPTER 5
SYSTEM TESTING AND PERFORMANCE ANALYSIS
.
5.1 SYSTEM TESTING
Testing is performed to identify errors. It is used for quality assurance.
Testing is an integral part of the entire development and maintenance
process. The goal of the testing during phase is to verify that the
specification has been accurately and completely incorporated into the
design, as well as to ensure the correctness of the design itself. For example
the design must not have any logic faults in the design be detected before
coding commences, otherwise the cost of fixing the faults will be
considerably higher as reflected. Detection of design faults can be achieved
by means of inspection as well as walkthrough.
Testing is one of the important steps in the software development
phase. Testing checks for the errors, as a whole of the project testing
involves the following test cases:
Static analysis is used to investigate the structural properties of the
Source code.
Dynamic testing is used to investigate the behavior of the source code
by executing the program on the test data.
5.2.5STRUCTURED TEST
Structure Tests are concerned with exercising the internal logic of a
program and traversing particular execution paths. The way in which
White-Box test strategy was employed to ensure that the test cases could
Guarantee that all independent paths within a module have been have been
38
testing. Testing is completed when the last module is integrated and tested.
5.3 TESTING TECHNIQUES / TESTING STRATEGIES
5.3.1 TESTING
Testing is a process of executing a program with the intent of finding
an error. A good test case is one that has a high probability of finding an
as-yet –undiscovered error. A successful test is one that uncovers an as-yet-
undiscovered error. System testing is the stage of implementation, which is
aimed at ensuring that the system works accurately and efficiently as
expected before live operation commences. It verifies that the whole set of
programs hang together. System testing requires a test consisting of several
key activities and steps for running a program, string, system and is
important in adopting a successful new system. This is the last chance to
detect and correct errors before the system is installed for user acceptance
testing.
The software testing process commences once the program is created and
the documentation and related data structures are designed. Software testing
is essential for correcting errors. Otherwise the program or the project is not
said to be complete. Software testing is the critical element of software
quality assurance and represents the ultimate review of specification design
and coding. Testing is the process of executing the program with the intent
of finding the error. A good test case design is one that as a probability of
finding an yet undiscovered error. A successful test is one that uncovers an
yet undiscovered error. Any engineering product can be tested in one of the
two ways:
5.3.1.1 WHITE BOX TESTING
This testing is also called as Glass box testing. In this testing,
by knowing the specific functions that a product has been design to perform
40
Testing begins at the module level and works “outward” toward the
integration of the entire computer based system.
Different testing techniques are appropriate at different points in time.
The developer of the software and an independent test group conducts
testing.
Testing and Debugging are different activities but debugging must be
accommodated in any testing strategy.
5.3.2.1 INTEGRATION TESTING:
Integration testing is a systematic technique for constructing the program
structure while at the same time conducting tests to uncover errors
associated with. Individual modules, which are highly prone to interface
errors, should not be assumed to work instantly when we put them together.
The problem of course, is “putting them together”- interfacing. There may
be the chances of data lost across on another’s sub functions, when
combined may not produce the desired major function; individually
acceptable impression may be magnified to unacceptable levels; global data
structures can present problems.
5.3.2.2 PROGRAM TESTING:
The logical and syntax errors have been pointed out by program testing. A
syntax error is an error in a program statement that in violates one or more
rules of the language in which it is written. An improperly defined field
dimension or omitted keywords are common syntax error. These errors are
shown through error messages generated by the computer. A logic error on
the other hand deals with the incorrect data fields, out-off-range items and
invalid combinations. Since the compiler s will not deduct logical error, the
programmer must examine the output. Condition testing exercises the logical
conditions contained in a module. The possible types of elements in a
42
(d);PSNR:40.23
(e);PSNR:44.67
Above are the images each containing 8KB cipher; (a) Flowers (b) Lanterns (c) Girl
(d) Photo Frame (e)Potter
PSNR is a metric method used to find the quality of an image after compressing it
into different bit sizes which are embedded by ciphertexts.
Mean Squared Error (MSE), Monochrome Image (I) and Maximum Possible Pixel (MAX)
45
CHAPTER 6
CONCLUSION AND FUTURE WORK
6.1 CONCLUSION
APPENDIX
Index.html
<!DOCTYPE html>
<?php
//starting the session
session_start();
?>
<html lang="en">
<head>
<meta charset="UTF-8" name="viewport" content="width=device-width,
initial-scale=1"/>
<!-- Bootstrap -->
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<a class="navbar-brand" href="" target="_balnk">Multimage
Encryption</a>
</div>
</nav>
<div class="col-md-3"></div>
<div class="col-md-6 well">
<h3 class="text-primary"></h3>
<hr style="border-top:1px dotted #ccc;"/>
<!-- Link for redirecting to Login Page -->
<a href="login.php">Already a member? Log in here...</a>
<br style="clear:both;"/><br />
<div class="col-md-3"></div>
<div class="col-md-6">
<!-- Registration Form start -->
<form method="POST" action="save_member.php">
<div class="alert alert-info">Registration</div>
<div class="form-group">
<label>Username</label>
<input type="text" name="username"
class="form-control" required="required"/>
</div>
<div class="form-group">
<label>Password</label>
49
Login_query.php
<?php
session_start();
require_once 'conn.php';
if(ISSET($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
$count = $row['count'];
Login.php
<!DOCTYPE html>
<?php
//starting the session
session_start();
?>
<html lang="en">
<head>
<meta charset="UTF-8" name="viewport" content="width=device-width,
initial-scale=1"/>
<link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
</head>
<body>
<nav class="navbar navbar-default">
51
</nav>
<div class="col-md-3"></div>
<div class="col-md-6 well">
</div>
</div>
</body>
</html>
Rsa.py
found = False
n=p*q
new_n = (p-1) * (q-1)
e = 65537
d = euclid_extended(e, new_n)
with open("public_key.txt", 'w') as f:
print >> f, n,",", e
def encrypt():
with open("public_key.txt", 'r') as f:
buf = f.read()
n, e = buf.split(",")
n = int(n)
e = int(e)
with open("message.txt", 'r') as f:
message = f.read()
size = f.tell()
list_message = []
int_message = 0
list_int_message = []
count = 0
for x in range(len(list_message)):
for y in list_message[x]:
y = ord(y) * (256**count )
int_message += y
count += 1
list_int_message.append(int_message)
int_message = 0
count = 0
list_ciphertext = []
for x in range(len(list_int_message)):
ciphertext = mod_expon(list_int_message[x],e,n)
list_ciphertext.append(ciphertext)
str_ciphertext = ''
54
list_cipher = ciphertext.split(",")
int_message = []
ascii_values = []
def main():
key_setup()
encrypt()
decrypt()
main();
Save.member.php
if(ISSET($_POST['register'])){
// Setting variables
$username = $_POST['username'];
$password = $_POST['password'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
// Insertion Query
$query = "INSERT INTO `member` (username, password, firstname,
lastname) VALUES(:username, :password, :firstname, :lastname)";
$stmt = $conn->prepare($query);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
header('location: index.php');
}
}
?>
Conn.php
<?php
//check if the database file exists and create a new if not
if(!is_file('db/db_member.sqlite3')){
file_put_contents('db/db_member.sqlite3', null);
}
// connecting the database
$conn = new PDO('sqlite:db/db_member.sqlite3');
//Setting connection attributes
$conn->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
//Query for creating the member table in the database if not exist yet.
$query = "CREATE TABLE IF NOT EXISTS member(mem_id INTEGER
PRIMARY KEY AUTOINCREMENT NOT NULL, username TEXT, password TEXT,
firstname TEXT, lastname TEXT)";
//Executing the query
$conn->exec($query);
?>
Bootstrap.js
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0,
.075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0,
.075);
}
.btn-default:active,
.btn-primary:active,
57
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default.disabled,
.btn-primary.disabled,
.btn-success.disabled,
.btn-info.disabled,
.btn-warning.disabled,
.btn-danger.disabled,
.btn-default[disabled],
.btn-primary[disabled],
.btn-success[disabled],
.btn-info[disabled],
.btn-warning[disabled],
.btn-danger[disabled],
fieldset[disabled] .btn-default,
fieldset[disabled] .btn-primary,
fieldset[disabled] .btn-success,
fieldset[disabled] .btn-info,
fieldset[disabled] .btn-warning,
fieldset[disabled] .btn-danger {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
58
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff),
to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',
endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
59
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#265a88));
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff265a88', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #245580;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #265a88;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #265a88;
border-color: #245580;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
60
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
background-color: #265a88;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c),
to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c',
endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
61
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de),
to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',
endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
62
fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e),
to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e',
endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
63
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f),
to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f',
endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
64
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5),
to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',
endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #2e6da4;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
65
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff),
to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',
endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0,
.075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0,
.075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb),
to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb',
endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c),
to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c',
endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
66
background-repeat: repeat-x;
border-radius: 4px;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808),
to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808',
endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
@media (max-width: 767px) {
.navbar .navbar-nav .open .dropdown-menu > .active > a,
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#2e6da4));
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff2e6da4', GradientType=0);
background-repeat: repeat-x;
}
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
67
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0,
.05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0,
.05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8),
to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8',
endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7),
to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7',
endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3),
to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3',
endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
68
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #286090;
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7),
to(#2b669a));
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7',
endColorstr='#ff2b669a', GradientType=0);
background-repeat: repeat-x;
+function ($) {
'use strict';
71
REFERENCES
[1] “Hash key-based image cryptosystem using chaotic maps and cellular
automata”, published in International Multi-Conference on Systems, Signals &
Devices, 2018
[2] “Visual Cryptography and Image Processing Based Approach for Secure
Transactions in Banking Sector”, published in International Conference on
Telecommunication and Networks, 2017
[3] “A Secure and Practical Authentication Scheme Using Personal Devices”,
published in IEEE Access, volume 5, 2017
[4] “The Quest to Replace Passwords: A Framework for Comparative
Evaluation of Web Authentication Schemes”, published in IEEE Symposium on
Security and Privacy, 2012
[5] “Chaos Based Image Encryption and Decryption”, published in International
Journal of Advanced Research in Computer and Communication Engineering,
2016
[6] “A novel image encryption algorithm using chaos and reversible cellular
automata”, published in Communication in Nonlinear science and numerical
simulation ,Vol .8 , Issue ,11,2013.
[7] “Enhancing Protection Techniques of E-Banking Security Services Using
Open Source Cryptographic Algorithms ”, published in International
Conference on Software Engineering, Artificial Intelligence, Networking and
Parallel/Distributed Computing,2013
[8] “Secure Authentication using Image Processing and Visual Cryptography for
Banking Applications”, published in International Conference on Advanced
Computing and Communications, 2008
[9] “Segment based Visual Cryptography for key distribution”, published in
International Journal of Computer Science & Engineering Survey (IJCSES)
Vol.3, No.1, February 2012
[10] “An Innocuous Visual Cryptography Scheme”, published in International
Workshop on Image Analysis for Multimedia Interactive Services, 2007
72