Secure Photo Sharing
Secure Photo Sharing
Secure Photo Sharing
1.0 1.1Synopsis 1
1.2 Organization Profiles
5.0 Design 42
5.1Frontend design
5.2Backend design
7.0 Testing 72
8.0 Conclusion 76
10.0 References 80
CHAPTER 1
SYNOPSIS
Nowadays, in a ubiquitous world where everything is connected to the Internet
and where social networks play an important role in our lives, security and privacy is a
must. Billions of pictures are uploaded daily to social networks and, with them, parts of
our private life are disclosed. In this work, we propose a practical solution for secure
photo sharing on social network with independence of its architecture which can be either
centralised or distributed. This solution solves the inconsistencies that appear in
distributed social network as a consequence of treating photos and access policies
separately. Specifically, we solve this open problem by attaching an access policy to the
images and thus, each time a photo is re-shared, the access policy will travel together with
the image. As a research says the simple disclosure of date and place of birth of a profile
in Face book can be used to predict the Social Security Number (SSN) of a citizen in the
U.S. Many a times just by simply publishing their friends list, users might be revealing a
large amount of information. For example, through the use of prediction algorithms it is
possible to infer private information that was previously undisclosed. Sometimes
sensitive information even comes embedded in the photo as metadata and may identify
people on the photo by accompanying more information that could be exploited, like
captions, comments and photo tags; marked regions. Even if the individuals in a photo are
not explicitly identified by photo tags, the combination of publicly available information
and face recognition software can be used to infer someone’s identity. These kinds of
problems are defined as collateral damage: users unintentionally put their own privacy or
their friend’s privacy at risk when performing events on SNSs such as Face book [2].
With the ease and need of fulfilling our social needs social interactions, information
sharing, appreciation and respect Social Networking sites have became the integral part of
daily life. With this ease and nature of social media people put more content, including
photos, over OSNs without too much thought on the content.
1.2 ORGANIZATION PROFILES
ADMINISTRATION OFFICE
OFFICE ADDRESS:
No.17/595, 1st Floor Mannar Sarefoji Nagar 2nd Street,Opp.New Bus Stand,
Thanjavur-5.
CONTACT: 04362-228899, 9597754496.
E-MAIL: [email protected].
CHAPTER 2
SYSTEM ANALYSIS
2.1EXISTING SYSTEM
To preserve privacy in photo sharing, most existing focused on designing access
control based approaches, and little work considers the specific sharing scenario. This
existing work requires users to set privacy policy for each photo and hence is not
scalable. Moreover, since setting privacy policy for each photo is tedious and time-
consuming; many users may opt not to share photos, thus missing potential social
opportunities. Some other researchers focus on preserving the privacy of the bystanders
by using some special equipment or tags, which may not be practical.
Disadvantages
Client End
Front Page – Using web application for the user to interact, download, and upload
images. Module to split the two images into 4 equal parts respectively. Function to apply
hashing technique to enhance the security .Module to overlap the two split images into a
single image. Module to encrypt the overlapped single image into a shared image. Apply
RSA algorithm with a key. This project proposes a system based on novel consensus,
approach to achieve efficiency and privacy at the same time. The main focus is to let each
user only deal with his/her private photo set as the local train data which can be used by
the users to learn out the local training result. Once the local training results are achieved
then it can be exchanged among various users to form a global knowledge.
Server end
Module to provide interface for the user to enter a key to decrypt the shared image.
Module to decrypt the shared image in order to obtain a single image which was
overlapped. Function to split overlapped image as two separate split share of images.
Function to compare the hash values which were generated during the encryption process
Function to obtain back the original confidential images which were initially uploaded
from the client end. Consider, for example, an app that allows users to report bugs
encountered while testing the beta version of a software application. The app will need a
way to store the contact details of each user together with a list of bugs reported by that
user. Each bug report will, in turn, consist of an ID that uniquely identifies the report, a
brief title and a detailed explanation of how to reproduce the problem. At first glance, it
might be tempting to structure the database as outlined in the partial JSON tree diagram
Functionalities
In this work, we propose a practical solution for secure photo sharing on social network
with independence of its architecture which can be either centralised or distributed. This
solution solves the inconsistencies that appear in distributed social network as a
consequence of treating photos and access policies separately. Specifically, we solve this
open problem by attaching an access policy to the images and thus, each time a photo is
re-shared, the access policy will travel together with the image.
CHAPTER 3
SYSTEM CONFIGURATION
Hardware Requirements
Hard disk : 1 TB
RAM : 4 GB
Processor : Core i3
Monitor : 15’’Color Monitor
Software Requirements
4.1SOFTWARE DESCRIPTION
Front end – HTML, CSS, JS
An overview:
HTML provides the basic structure of sites, which is enhanced and modified by
other technologies like CSS and JavaScript.
CSS is used to control presentation, formatting, and layout.
JavaScript is used to control the behavior of different elements.
Now, let's go over each one individually to help you understand the roles each plays on a
website and then we'll cover how they fit together. Let's start with good of' HTML.
HTML
HTML is at the core of every web page, regardless the complexity of a site or number of
technologies involved. It's an essential skill for any web professional. It's the starting
point for anyone learning how to create content for the web. And, luckily for us, it's
surprisingly easy to learn.
Markup languages work in the same way as you just did when you labeled those content
types, except they use code to do it -- specifically, they use HTML tags, also known as
"elements." These tags have pretty intuitive names: Header tags, paragraph tags, image
tags, and so on.
Every web page is made up of a bunch of these HTML tags denoting each type of content
on the page. Each type of content on the page is "wrapped" in, i.e. surrounded by, HTML
tags.
For example, the words you're reading right now are part of a paragraph. If I were coding
this web page from scratch (instead of using the WYSIWG editor in HubSpot's COS), I
would have started this paragraph with an opening paragraph tag: <p>. The "tag" part is
denoted by open brackets, and the letter "p" tells the computer that we're opening a
paragraph instead of some other type of content.
Once a tag has been opened, all of the content that follows is assumed to be part of that
tag until you "close" the tag. When the paragraph ends, I'd put a closing paragraph tag:
</p>. Notice that closing tags look exactly the same as opening tags, except there is a
forward slash after the left angle bracket. Here's an example:
<p>This is a paragraph.</p>
Using HTML, you can add headings, format paragraphs, control line breaks, make lists,
emphasize text, create special characters, insert images, create links, build tables, control
some styling, and much more.
To learn more about coding in HTML, I recommend checking out our guide to basic
HTML, and using the free classes and resources on codecademy -- but for now, let's move
on to CSS.
CSS
CSS stands for Cascading Style Sheets. This programming language dictates how the
HTML elements of a website should actually appear on the frontend of the page.
Whereas HTML was the basic structure of your website, CSS is what gives your entire
website its style. Those slick colors, interesting fonts, and background images? All thanks
to CSS. This language affects the entire mood and tone of a web page, making it an
incredibly powerful tool -- and an important skill for web developers to learn. It's also
what allows websites to adapt to different screen sizes and device types.
To show you what CSS does to a website, look at the following two screenshots. The first
screenshot is my colleague's blog post, but shown in Basic HTML, and the second
screenshot is that same blog post with HTML and CSS.
JavaScript
JavaScript is a more complicated language than HTML or CSS, and it wasn't released in
beta form until 1995. Nowadays, JavaScript is supported by all modern web browsers and
is used on almost every site on the web for more powerful and complex functionality.
avaScript is particularly useful for assigning new identities to existing website elements,
according to the decisions the user makes while visiting the page. For example, let's say
you're building a landing page with a form you'd like to generates leads from by capturing
information about a website visitor. You might have a "string" of JavaScript dedicated to
the user's first name. That string might look something like this:
Then, after the website visitor enters his or her first name -- and any other information
you require on the landing page -- and submits the form, this action updates the identity
of the initially undefined "Firstname" element in your code. Here's how you might thank
your website visitor by name in JavaScript:
para.textContent = 'Thanks, ' + First name + "! You can now download your ebook."
In the string of JavaScript above, the "First name" element has been assigned the first
name of the website visitor, and will therefore produce his or her actual first name on the
frontend of the webpage.
These three principles do not exist in isolation, but they inform and affect one
another. Therefore, any infosec system will involve a balance of these factors. As an
extreme example, information only available as a written sheet of paper stored in a vault
is confidential but not easily available. Information carved into stone displayed in the
lobby has a lot of integrity but is not confidential or available.
4.3 DIAGRAMS
Architecture Diagram
Data Flow Diagram
A data-flow diagram (DFD) is a way of representing a flow of a data of
a process or a system. The DFD also provides information about the outputs and inputs of
each entity and the process itself. A data-flow diagram has no control flow; there are no
decision rules and no loops. Specific operations based on the data can be represented by
a flowchart.
Use Case Diagram
A use case diagram is a graphic depiction of the interaction among the elements of a
system. A Use case diagram is methodology used in system analysis to identify, clarify,
and organize system requirements .the actor, usually individuals involved with system
defined according to their roles.
Class Diagram
Class diagram is the type of static structure diagram that describe the structure of a
system by showing the systems classes, their attributes operations or methods under
relationship among the objects.
Activity Diagram
Activity diagram is another important diagram in UML to describe the dynamic
aspects of the system. Activity diagram is basically a flowchart to represent the flow from
one activity to another activity. The activity can be described as an operation of the
system. The control flow is drawn from one operation to another. This flow can be
sequential, branched, or concurrent. Activity diagrams deal with all type of flow control
by using different elements such as fork, join, etc.
E-R Diagram
An Entity Relationship (ER) Diagram is a type of flowchart that illustrates how
“entities” such as people, objects or concepts relate to each other within a system. ER
Diagrams are most often used to design or debug relational databases in the fields of
software engineering, business information systems, education and research.
CHAPTER 5
DESIGN
5.1 FRONTEND DESIGN
5.2BACKEND DESIGN
DB Design:
SAMPLE CODING
Index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Login</title>
<style>
body, html {
height:100%
</style>
</head>
<body >
<span class="sr-only"></span>
</div>
</div>
<form onsubmit="document.getElementById('loader').style.display='block'"
action="/login.php" method="POST" class="card-body p-4 text-center">
<label for="floatingInput">Email</label>
</div>
<label for="floatingInput">Password</label>
</div>
<button class="btn btn-primary btn-lg px-5 mb-2" type="submit">Login</button>
<hr>
</div>
</div>
</div>
</div>
</div>
</section>
<style>
.gradient-custom {
background: -webkit-linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252,
1));
background: linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252, 1))
</style>
<script>
if(urlParams.get('err')){
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 5000)
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 5000)
</script>
<script src="/static/js/bootstrap.bundle.js"></script>
</body>
</html>
Login.php
<?php
require("./user/layout/db.php");
$email = $_POST["email"];
$password = $_POST["password"];
$result = $conn->query($sql);
if ($result->num_rows > 0) {
if ($row["password"]==$password) {
if(!isset($_SESSION))
session_start();
$_SESSION["id"] = $row["id"];
header("Location: /user/");
die();
} else {
die();
}else{
die();
}
?>
Register.php
<?php
require("./user/layout/db.php");
$name = $_POST["name"];
$email = $_POST["email"];
$password = $_POST["password"];
$conn->query($sql);
die();
?>
Signup.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Signup</title>
<style>
body, html {
height:100%
</style>
</head>
<body >
<span class="sr-only"></span>
</div>
</div>
<form onsubmit="document.getElementById('loader').style.display='block'"
action="/register.php" method="POST" class="card-body p-4 text-center">
<label for="floatingInput">Name</label>
</div>
<label for="floatingInput">Email</label>
</div>
</div>
<hr>
</div>
</div>
</div>
</div>
</div>
</section>
<style>
.gradient-custom {
background: -webkit-linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252,
1));
background: linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252, 1))
</style>
<script>
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 5000)
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 5000)
</script>
<script src="/static/js/bootstrap.bundle.js"></script>
</body>
</html>
user/access.php
<?php
require("./layout/db.php");
$id = $_POST["id"];
die();
?>
user/home.php
<?php
if(!isset($_SESSION))
session_start();
$sid = $_SESSION["id"];
$uid=$row["uid"];
$iid=$row["id"];
while($row1 = $result1->fetch_assoc()){
?>
<?php
if($result2->num_rows > 0) {
while($row2=$result2->fetch_assoc()){
?>
<?php
$mid=$row2["uid"];
while($row5 = $result5->fetch_assoc()){
?>
<label for=""><?php echo($row5["name"]) ?> : </label>
<?php
?>
</form>
<?php
?>
</section>
<?php
}else{
?>
</main>
<script>
if(urlParams.get('err')){
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 3000)
</script>
<script>
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 3000)
</script>
<?php require("./layout/Footer.php") ?>
user/img.php
<?php
require("./layout/db.php");
$target_dir = "./uploads/";
$file = strtotime("now").basename($_FILES["image"]["name"]);
if(!isset($_SESSION))
session_start();
$sid = $_SESSION["id"];
if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
$last_id = $conn->insert_id;
die();
} else {
} else {
die();
?>
user//index.php
</button>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
<form onsubmit="document.getElementById('loader').style.display='block'"
enctype="multipart/form-data" action="/user/img.php" method="post">
<label>Select Image</label>
</div>
<div style="display:flex;justify-content:flex-end">
</div>
</form>
</div>
</div>
</div>
</div>
<?php
if(!isset($_SESSION))
session_start();
$sid = $_SESSION["id"];
while($row = $result->fetch_assoc()){
$uid=$row["uid"];
$iid=$row["id"];
while($row1 = $result1->fetch_assoc()){
?>
<?php
while($row2 = $result2->fetch_assoc()){
if($row2["status"]=="OK"){
?>
<?php
}else{
?>
<?php
}else{
?>
</form>
<?php
?>
</section>
<?php
}else{
?>
</main>
<script>
if(urlParams.get('err')){
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 3000)
</script>
<script>
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 3000)
</script>
user/request.php
<?php
require("./layout/db.php");
$iid = $_POST["id"];
if(!isset($_SESSION))
session_start();
$sid = $_SESSION["id"];
$conn->query("INSERT INTO access(uid,iid,status) VALUE('$sid','$iid','NOT')");
die();
?>
Db.php
<?php
$servername = "localhost";
$username = "root";
$password = "trysomething";
$db_name = "photo";
if ($conn->connect_error) {
?>
user/header
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User</title>
<script src="/static/js/moment.js"></script>
</head>
<body>
<div class="container">
User
</a>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
</div>
</div>
</nav>
User/Footer.php
<script src="/static/js/bootstrap.bundle.js"></script>
</body>
</html>
Style.css:
::-webkit-scrollbar {
width: 5px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
::-webkit-scrollbar-thumb {
border-radius: 20px;
background: #aaa;
::-webkit-scrollbar-thumb:hover {
background: #aaa;
*{
margin:0px;
padding:0px;
line-height: 1.7;
html,
body {
height: 100%;
}
a.active {
font-weight: 700;
Index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Login</title>
<style>
body, html {
height:100%
</style>
</head>
<body >
<div id="loader" style="position:fixed;width:100%;height:100%;background-
color:rgba(106, 17, 203, 1);z-index: 10000;top:0px;display: none;">
<span class="sr-only"></span>
</div>
</div>
<form onsubmit="document.getElementById('loader').style.display='block'"
action="/login.php" method="POST" class="card-body p-4 text-center">
<label for="floatingInput">Email</label>
</div>
<label for="floatingInput">Password</label>
</div>
<hr>
</div>
</div>
</div>
</div>
</div>
</section>
<style>
.gradient-custom {
background: -webkit-linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252,
1));
background: linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252, 1))
</style>
<script>
const queryString = window.location.search;
if(urlParams.get('err')){
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 5000)
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 5000)
</script>
<script src="/static/js/bootstrap.bundle.js"></script>
</body>
</html>
Login.php
<?php
require("./user/layout/db.php");
$email = $_POST["email"];
$password = $_POST["password"];
$result = $conn->query($sql);
if ($result->num_rows > 0) {
if ($row["password"]==$password) {
if(!isset($_SESSION))
session_start();
$_SESSION["id"] = $row["id"];
header("Location: /user/");
die();
} else {
die();
}
}else{
die();
?>
Register.php
<?php
require("./user/layout/db.php");
$name = $_POST["name"];
$email = $_POST["email"];
$password = $_POST["password"];
$conn->query($sql);
die();
?>
Signup.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Signup</title>
<style>
body, html {
height:100%
</style>
</head>
<body >
</div>
</div>
<form onsubmit="document.getElementById('loader').style.display='block'"
action="/register.php" method="POST" class="card-body p-4 text-center">
<label for="floatingInput">Name</label>
</div>
<label for="floatingInput">Email</label>
</div>
<label for="floatingInput">Password</label>
</div>
<hr>
</div>
</div>
</div>
</div>
</div>
</section>
<style>
.gradient-custom {
background: -webkit-linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252,
1));
background: linear-gradient(to right, rgba(106, 17, 203, 1), rgba(37, 117, 252, 1))
}
</style>
<script>
if(urlParams.get('err')){
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 5000)
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 5000)
</script>
<script src="/static/js/bootstrap.bundle.js"></script>
</body>
</html>
user/access.php
<?php
require("./layout/db.php");
$id = $_POST["id"];
die();
?>
user/home.php
<?php
if(!isset($_SESSION))
{
session_start();
$sid = $_SESSION["id"];
while($row = $result->fetch_assoc()){
$uid=$row["uid"];
$iid=$row["id"];
while($row1 = $result1->fetch_assoc()){
?>
<?php
if($result2->num_rows > 0) {
while($row2=$result2->fetch_assoc()){
?>
$mid=$row2["uid"];
while($row5 = $result5->fetch_assoc()){
?>
<?php
?>
</form>
<?php
?>
</section>
<?php
}else{
?>
</main>
<script>
if(urlParams.get('err')){
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 3000)
</script>
<script>
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 3000)
</script>
user/img.php
<?php
require("./layout/db.php");
$target_dir = "./uploads/";
$file = strtotime("now").basename($_FILES["image"]["name"]);
if(!isset($_SESSION))
session_start();
$sid = $_SESSION["id"];
if (move_uploaded_file($_FILES["image"]["tmp_name"], $target_file)) {
$last_id = $conn->insert_id;
$conn->query("INSERT INTO access(uid,iid,status) VALUE('$sid','$last_id','OK')");
die();
} else {
die();
} else {
die();
?>
user//index.php
</button>
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
</div>
<div class="modal-body">
<form onsubmit="document.getElementById('loader').style.display='block'"
enctype="multipart/form-data" action="/user/img.php" method="post">
<label>Select Image</label>
</div>
<div style="display:flex;justify-content:flex-end">
</form>
</div>
</div>
</div>
</div>
<?php
if(!isset($_SESSION))
session_start();
$sid = $_SESSION["id"];
while($row = $result->fetch_assoc()){
$uid=$row["uid"];
$iid=$row["id"];
while($row1 = $result1->fetch_assoc()){
?>
<section class="col-3 card p-2">
<?php
if($result2->num_rows > 0) {
while($row2 = $result2->fetch_assoc()){
if($row2["status"]=="OK"){
?>
<?php
}else{
?>
<?php
}else{
?>
<?php
?>
</section>
<?php
}else{
?>
</main>
<script>
if(urlParams.get('err')){
}
setTimeout(()=>{
document.getElementById("err").style.display="none"
}, 3000)
</script>
<script>
if(urlParams.get('msg')){
setTimeout(()=>{
document.getElementById("msg").style.display="none"
}, 3000)
</script>
user/request.php
<?php
require("./layout/db.php");
$iid = $_POST["id"];
if(!isset($_SESSION))
session_start();
$sid = $_SESSION["id"];
die();
?>
Db.php
<?php
$servername = "localhost";
$username = "root";
$password = "trysomething";
$db_name = "photo";
if ($conn->connect_error) {
}
?>
user/header
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User</title>
<script src="/static/js/moment.js"></script>
</head>
<body>
<div class="container">
User
</a>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
<li class="nav-item">
</li>
</ul>
</div>
</div>
</nav>
User/Footer.php
<script src="/static/js/bootstrap.bundle.js"></script>
</body>
</html>
Style.css:
::-webkit-scrollbar {
width: 5px;
::-webkit-scrollbar-track {
background: #f1f1f1;
::-webkit-scrollbar-thumb {
border-radius: 20px;
background: #aaa;
::-webkit-scrollbar-thumb:hover {
background: #aaa;
*{
margin:0px;
padding:0px;
line-height: 1.7;
html,
body {
height: 100%;
a.active {
font-weight: 700;
}
CHAPTER 7
TESTING
SYSTEM TESTING
TYPES OF TESTS:
UNIT TESTING:
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual
software units of the application .it is done after the completion of an individual unit
before integration.
This is a structural testing, that relies on knowledge of its construction and is invasive.
Unit tests perform basic tests at component level and test a specific business process,
application, and/or system configuration. Unit tests ensure that each unique path of a
business process performs accurately to the documented specifications and contains
clearly defined inputs and expected results.
INTEGRATION TESTING:
FUNCTIONAL TEST:
Functional tests provide systematic demonstrations that functions tested are available
as specified by the business and technical requirements, system documentation, and user
manuals.
PERFORMANCE TESTING:
System testing ensures that the entire integrated software system meets requirements.
It tests a configuration to ensure known and predictable results. An example of system
testing is the configuration oriented system integration test. System testing is based on
process descriptions and flows, emphasizing pre-driven process links and integration
points.
Black Box Testing is testing the software without any knowledge of the inner workings,
structure or language of the module being tested. Black box tests, as most other kinds of
tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document. It is a testing in
which the software under test is treated, as a black box .you cannot “see” into it. The test
provides inputs and responds to outputs without considering how the software works.
ACCEPTANCE TESTING:
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user. It also ensures that the system meets the functional
requirements.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered
CHAPTER 8
CONCLUSION
How the images are being transmitted from one end to other securely, providing
different security methods at different stages are being presented and discussed in this
paper. However there are stages differentiated at both client end and the server end with
appropriate modules. Based on these things we would recommend that this project would
work successfully and efficiently.
CHAPTER 9
FUTURE ENHANCEMENT
In future the work of instant messaging and further module development can be
done which will make our project fully automated and also more reliable software for the
event should be provided.
CHAPTER 10
REFERENCES
[1] Vrinda A, Mr. Arun Anoop M, “Securing Images using Encryption Techniques”,
International Journal of Computing and Technology, Volume 1, Issue 2, March 2014.
[2] Aman Jain, Namita Tiwari, Madhu Shandilya, “Image Based Encryption Techniques”,
International Journal of Computer Science and Information Technologies, Vol. 5 (3),
2014.
[4] Xinpeng Zhang, Yanli Ren, Liquan Shen, Zhenxing Qian, and Guorui Feng,
”Compressing Encrypted Images With Auxiliary Information”, IEEE transactions on
multimedia, vol. 16, no. 5, august 2014.