Professional Documents
Culture Documents
Graphical Passwprd Athuentication System Project Report
Graphical Passwprd Athuentication System Project Report
Graphical Passwprd Athuentication System Project Report
Training Report
On
INDUSTRIAL TRAINING
Graphical Password Authentication System
Using python
DIPLOMA
IN
COMPUTER SCIENCE AND ENGINEERING
1
TKR COLLEGE OF ENGINEERING AND TECHNOLOGY
(Affiliated to SBTET,2 Shift polytechnic college Medbowli, Meerpet, Balapur.Hyderabad-500097)
This is to certify that the project work entitled "INDUSTRIAL TRAINING"as a partial
fulfillment of the academic requirements for the award of degree of DIPLOMA IN
COMPUTER SCIENCE AND ENGINEERING from STATE BOARD OF TECHNICAL
EDUCATION AND TRAINING, HYDERABAD
Team members
P.MANIKANTA (21248-CS-057)
K.CHAKRADHAR (21248-CS-038)
P.SATHVIK (21248-CS-056)
2
ACKNOWLEDGEMENT
With gratitude,
3
DECLARATION
The matter embodied here, has not been submitted by me for the award of
any other degree or diploma.
4
A PROJECT DOCUMENTATION
ON
System Analysis
2.1 Existing System
2.2 Drawbacks of Existing System
2.3 Proposed System
2.4 Advantages of Proposed System
System Requirements
3.1 Hardware Requirements
3.2 Software Requirements
3.3 Software Descriptions: Frontend & Backend
System Implementation
5.1 Coding
Testcases
6.1 Testcases
Conclusion
7.1 Conclusion
Bibliography
8.1 Textbooks & Websites
6
ABSTRACT
The graphical password system employs a diverse set of images and dynamic interaction
techniques to create a unique and personalized authentication experience. Users select
and manipulate graphical elements to generate a password, thereby enhancing security
through increased complexity and reducing vulnerability to common attacks such as
brute force.
Furthermore, the system incorporates adaptive features to evolve with user behavior,
ensuring a balance between security and usability. Through rigorous usability testing and
security assessments, our findings demonstrate the effectiveness of the proposed
graphical password authentication system as a viable alternative to traditional text-based
approaches.
This research contributes to the ongoing effort to develop more secure and user-friendly
authentication mechanisms, addressing the evolving landscape of cyber threats in
the digital age.
This is used to increase the protection/security of a website. Our system is divided into
further 4 layers of protection. Each layer is totally different and diverse than the others.
This not only increases protection, but also makes sure that no non-human can log in to
your account using different activities such as Brute Force Algorithm and so on.
The motivation for this project came from a recent attack named Pegasus in which people
had their mobile phones compromised for almost a decade without them ever getting
the slightest clue. This motivated us to build a stronger authentication system that
generates randomized methods which could weaken the attack and eventually prevent it.
7
INTRODUCTION
1.1 Introduction
1.2 Purpose of the Project
1.3 Brief Introduction about PYTHON
8
1.1 Introduction
The Purpose of the Project is, the recent times Authentication System is easy to
hack by the Hackers and Bots so, This Project is used to increase the Security and
Simplicity to the Authentication System with this Your Account and your Data will be
safe.
10
2.1 Existing System
Many systems employ identity and access management (IAM) solutions to centralize and
control user access across applications. Regular security audits and updates are essential
to address vulnerabilities and ensure the ongoing effectiveness of
authentication mechanisms.
The existing authentication systems typically involve the use of passwords, biometrics, or
two-factor authentication for user verification. Security measures may also include
CAPTCHA, account recovery options, and session management to protect against
unauthorized access.
12
SYSTEM REQUIREMENTS
13
• Processor : Intel Pentium3
• RAM : 1024MB
• Hard disk : 40GB
• Monitor : 15VGA colour
1.HTML:
HTML (Hypertext Markup language) is the set of markup symbols or codes inserted in a
file intended for display on a World Wide Web browser page. The markup tells the web
browser how to display a web pages words and images for the user.HTML defines the
structure and layout of a web document by using a variety of tags and attributes. Each
individual markup code is referred to as an element (but many people also refer to it as a
tag). Some elements come in pairs that indicate when some display effect is to begin and
when it is to end. HTML is a formal recommendation by the World Wide Web
Consortium (W3C) and is generally adhered to by the major browsers. It’s the standard
format for formatting and displaying document on the World Wide Web. The current
version of HTML is HTML 5.0.
In order to meet the growing demand for more impressive web features, HTML has been
coupled with plugins like CSS, Flash, JavaScript etc.
14
2.CSS:
CSS stands for Cascading Style Sheets. CSS describe how HTML elements are to be
displayed on screen, paper, or in other media.CSS saves a lot of work. It can control the
layout of multiple web pages all at once. CSS will be internal or external, external
Stylesheets are stored in CSS files.
CSS is used to define styles for your web pages, including the design, layout and
variations in display for different devices and screen sizes.CSS removed the style
formatting from the HTML page. CSS is independent of HTML and can be used with any
XML based markup language. The separation of HTML from CSS makes it easier to
maintain sites, share style sheets across pages, and tailor pages to different
environment.
3.Javascript:
4.Bootstrap:
1.Bootstrap is the most popular HTML, CSS and JavaScript framework for developing
responsive, mobile-first web sites.
2.Bootstrap is completely free to download and use.
3.Bootstrap gives you the ability to faster and easier web development
5.PHP:
PHP is an acronym for “PHP: Hypertext Preprocessor”. PHP is a server scripting language,
and a powerful tool for making dynamic and interactive web pages. PHP is a widely used,
free, and efficient alternative to competitors such as Microsoft’s ASP. PHP is widely used
and open-source scripting language. PHP scripts are executed on the server. It is
powerful enough to be at the core of the biggest blogging system on the web. It is deep
enough to run the largest social network such as Facebook. It is also easy enough to be a
beginner’s first server side language.
15
PHP files can contain text, HTML, CSS, JavaScript, and PHP code. PHP code are executed
on the server, and the result is returned to the browser as plain HTML. PHP files have
extension”.php”.
PHP can generate dynamic page content. PHP can create, open, read, write, delete, and
close files on the server, can collect form data, can send and receive cookies. PHP can
add, delete, modify data in your database. PHP can be used to control user access, can
encrypt data. With PHP you are not limited to output HTML. You can output images, PDF
files, and even Flash movies. You can also output any text, such as XHTML and XML. PHP
runs on various platforms (Windows, Linux, Mac OS X, etc.). PHP is compatible with
almost all servers used today (Apache, IIS, etc.). PHP supports a wide range of databases.
PHP is easy to learn and runs efficiently on the server side.
Its popularity derives from its C-like syntax, and simplicity. PHP is currently divided into
two major versions: PHP 4 and PHP 5, although PHP 4 is deprecated and no longer
developed or supplied with critical bug fixes. PHP 6 is currently under development. PHP
was designed by Ramus Lerdorf to display his resume online and to collect data from his
visitors.
6.MYSQL:
16
SYSTEM DESIGN
17
18
4.2 Garbled System Authentication :
19
4.3 Obscure System Authentication :
20
4.4 Password/Image System Authentication :
21
4.5 Segmented System Authentication :
22
4.6 Authenticated and GO away Robot Page :
23
SYSTEM IMPLEMENTATION
5.1 Coding
24
5.1 CODING
main_menu.py
def start(win):
win.geometry("1280x600")
win.title("Graphical Authentication Password System")
btn_height = 150
btn_width = 450
btn_font = ('Trebuchet MS', 14)
25
btn1 = custom_button.TkinterCustomButton(master=menu_frame,
text="Test Garbled Images", text_font=btn_font,
height=btn_height,width=btn_width, corner_radius=10,
command=lambda: load_garbled(win, menu_frame))
.place(relx=0.3, rely=0.4, anchor=CENTER)
btn2 = custom_button.TkinterCustomButton(master=menu_frame,
text="Test Segmented Images", text_font=btn_font,
height=btn_height, width=btn_width, corner_radius=10,
command=lambda: load_segmented(win, menu_frame))
.place(relx=0.3, rely=0.7, anchor=CENTER)
btn3 = custom_button.TkinterCustomButton(master=menu_frame,
text="Test Obscured Images", text_font=btn_font,
height=btn_height, width=btn_width, corner_radius=10,
command=lamload_obscured(win,menu_frame))
.place(relx=0.7,rely=0.4,anchor=CENTER)
btn4 = custom_button.TkinterCustomButton(master=menu_frame,
text="Test Password/Image Authentication",text_font=btn_font,
height=btn_height, width=btn_width, corner_radius=10,
command=lambda: load_password(win, menu_frame))
.place(relx=0.7,rely=0.7,anchor=CENTER)
win.mainloop()
if __name__ == "__main__":
win = Tk()
start(win)
custom_button.py
import tkinter
import sys
class TkinterCustomButton(tkinter.Frame):
def __init__(self,
bg_color=None,
fg_color="#2874A6",
hover_color="#5499C7",
border_color=None,
border_width=0,
command=None,
width=120,
height=40,
corner_radius=10,
text_font=None,
text_color="white",
26
text="CustomButton",
hover=True,
image=None,
*args, **kwargs):
super().__init__(*args, **kwargs)
if bg_color is None:
self.bg_color = self.master.cget("bg")
else:
self.bg_color = bg_color
self.fg_color = fg_color
self.hover_color = hover_color
self.border_color = border_color
self.width = width
self.height = height
self.border_width = border_width
self.text = text
self.text_color = text_color
if text_font is None:
if sys.platform == "darwin": # macOS
self.text_font = ("Avenir", 13)
elif "win" in sys.platform: # Windows
self.text_font = ("Century Gothic", 11)
else:
self.text_font = ("TkDefaultFont")
else:
self.text_font = text_font
self.image = image
self.function = command
self.hover = hover
self.configure(width=self.width, height=self.height)
self.canvas = tkinter.Canvas(master=self,
highlightthicknes=0,
background=self.bg_color,
width=self.width,
27
height=self.height)
self.canvas.place(x=0, y=0)
if self.hover is True:
self.canvas.bind("<Enter>", self.on_enter)
self.canvas.bind("<Leave>", self.on_leave)
self.canvas.bind("<Button-1>", self.clicked)
self.canvas.bind("<Button-1>", self.clicked)
self.canvas_fg_parts = []
self.canvas_border_parts = []
self.text_part = None
self.text_label = None
self.image_label = None
self.draw()
def draw(self):
self.canvas.delete("all")
self.canvas_fg_parts = []
self.canvas_border_parts = []
self.canvas.configure(bg=self.bg_color)
if self.corner_radius > 0:
self.canvas_border_parts.append(self.canvas.create_oval(0,
0,
self.corner_radius * 2,
self.corner_radius * 2))
self.canvas_border_parts.append(self.canvas.create_oval(self.width -
self.corner_radius * 2,
0,
self.width,
self.corner_radius * 2))
self.canvas_border_parts.append(self.canvas.create_oval(0,
self.height
- self.corner_radius * 2,
self.corner_radius * 2,
self.height))
self.canvas_border_parts.append(self.canvas.create_oval(self.width -
self.corner_radius * 2,
self.height
- self.corner_radius * 2,
self.width,
self.height))
self.canvas_border_parts.append(self.canvas.create_rectangle(0,
self.corner_radius,
28
self.width,
self.height
- self.corner_radius))
self.canvas_border_parts.append(self.canvas.create_rectangle(self.corner_radius,
0,
self.width
- self.corner_radius,
self.height))
if self.corner_radius > 0:
self.canvas_fg_parts.append(self.canvas.create_oval(self.border_width,
self.border_width,
self.border_width +
self.inner_corner_radius * 2,
self.border_width +
self.inner_corner_radius * 2))
self.canvas_fg_parts.append(self.canvas.create_oval(self.width -
self.border_width - self.inner_corner_radius * 2,
self.border_width,
self.width -
self.border_width,
self.border_width +
self.inner_corner_radius * 2))
self.canvas_fg_parts.append(self.canvas.create_oval(self.border_width,
self.height -
self.border_width - self.inner_corner_radius * 2,
self.border_width +
self.inner_corner_radius * 2,
self.height-
self.border_width))
self.canvas_fg_parts.append(self.canvas.create_oval(self.width -
self.border_width - self.inner_corner_radius * 2,
self.height -
self.border_width - self.inner_corner_radius * 2,
self.width -
self.border_width,
self.height -
self.border_width))
self.canvas_fg_parts.append(self.canvas.create_rectangle(self.border_width +
self.inner_corner_radius,
self.border_width,
self.width -
self.border_width - self.inner_corner_radius,
self.height -
self.border_width))
self.canvas_fg_parts.append(self.canvas.create_rectangle(self.border_width,
self.border_width +
self.inner_corner_radius,
self.width -
self.border_width,
self.height -
self.inner_corner_radius - self.border_width))
29
for part in self.canvas_fg_parts:
self.canvas.itemconfig(part, fill=self.fg_color, width=0)
# no image given
if self.image is None:
# create tkinter.Label with text
self.text_label = tkinter.Label(master=self,
text=self.text,
font=self.text_font,
bg=self.fg_color,
fg=self.text_color)
self.text_label.place(relx=0.5, rely=0.5, anchor=tkinter.CENTER)
# bind events the the button click and hover events also to the
text_label
if self.hover is True:
self.text_label.bind("<Enter>", self.on_enter)
self.text_label.bind("<Leave>", self.on_leave)
self.text_label.bind("<Button-1>", self.clicked)
self.text_label.bind("<Button-1>", self.clicked)
self.set_text(self.text)
self.image_label.place(relx=0.5,
rely=0.5,
anchor=tkinter.CENTER)
# bind events the the button click and hover events also to the
image_label
if self.hover is True:
self.image_label.bind("<Enter>", self.on_enter)
self.image_label.bind("<Leave>", self.on_leave)
self.image_label.bind("<Button-1>", self.clicked)
self.image_label.bind("<Button-1>", self.clicked)
30
if self.image is not None:
self.image_label.configure(bg=self.fg_color)
self.draw()
Garbled.py
import tkinter
from tkinter import *
import custom_button
import main_menu
import utils
from PIL import ImageTk, Image
31
from tkinter import Entry
import random
def start(window):
filepath = "garbledImages/original_garbled.txt" # File Path
garbledImages = utils.getgarbledImages()
num = random.randint(0, len(garbledImages) - 1)
filename = garbledImages[num]
f = open(filepath, "r")
while True:
string = f.readline() # Reading file line by line
s1 = string.split(' ')[0]
if s1 == filename[0:len(filename) - 4]:
break
# print("Original = ", string)
string = string[9:] # Cropping string
string = string.replace(' ', '-') # Replacing spaces with dashes
original_text = string
original_text = original_text.rstrip() # Removing \n
f.close()
print(original_text)
print(filename)
def check():
entered_text = input.get()
if entered_text == original_text:
print("Authenticated")
utils.create_popup(msg="Authenticated :)", font="C")
else:
print("Authentication Failed")
utils.create_popup(msg="Go Away Robot >_<", font="C")
32
input = StringVar()
Label(garbled_frame, text="Enter word", font="ariel 16 bold").place(relx=0.7,
rely=0.40, anchor=CENTER)
Entry(garbled_frame, textvariable=input, font="ariel 12 bold",
relief="groove", width=30, justify=CENTER).place(
relx=0.7,
rely=0.5,
anchor=CENTER)
custom_button.TkinterCustomButton(master=garbled_frame, text="Check",
height=40, corner_radius=10,
command=check).place(relx=0.7, rely=0.6,
anchor=CENTER)
while True:
window.update_idletasks()
window.update
Obscure.py
import tkinter
from tkinter import *
import custom_button
import main_menu
import speech_recognition as sr
import utils
from PIL import ImageTk, Image
import random
original_text = []
def toggle(event):
input_text = None
while True:
e = sr.Recognizer() # Recognizes all input devices
with sr.Microphone() as source: # setting microphone as default input
device
try:
print("Say Something. Say 'stop' inorder to stop")
audio = e.listen(source) # Listens audio
input_text = e.recognize_google(audio)
if input_text == "stop": # Break conditiono
break
33
except:
print("Exception occured when trying to record")
break
input_text = input_text[:-5] # Removing stop from the end of line
input_text = input_text.rstrip() # Removing \n
input_text = input_text.lower() # Converting everything to lowercase
input_text = input_text.replace(' ', '-') # Replacing spaces with dashes
if original_text[0] == input_text:
print("Authenticated")
utils.create_popup(msg="Authenticated :)", font="Gabriola 28 bold")
else:
print("Authentication Failed")
utils.create_popup(msg="Go Away Robot >_<", font="Gabriola 28 bold")
def start(window):
obscuredImages = utils.getObscuredImages()
num = random.randint(1, len(obscuredImages) - 1)
filename = obscuredImages[num] # Filename that will be displayed
filepath = "obscuredImages/original_obscure.txt" # File Path
f = open(filepath, "r")
while True:
string = f.readline() # Reading file line by line
s1 = string.split(' ')[0] # Getting first word (filename) of line
if s1 == filename[0:len(filename) - 4]: # Don't need the file extension,
only name
break)
string = string[9:] # Cropping string
string = string.replace(' ', '-') # Replacing spaces with dashes
string = string
original_text.append(string.rstrip()) # Removing \n
f.close()
34
canvas2.bind("<Button-1>", toggle)
img2 = (Image.open("assets/mic.jpg"))
img2 = img2.resize((200, 170),)
img2 = ImageTk.PhotoImage(img2)
canvas2.create_image(10, 10, anchor=NW, image=img2)
canvas2.pack(padx=20, pady=20)
anchor=CENTER)
while True:
window.update_idletasks()
window.update()
Password.py
import tkinter
from tkinter import *
import custom_button
import main_menu
import utils
from PIL import ImageTk, Image
from tkinter import Entry
s_image = []
s_image.append("")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
36
messagebox.showinfo("Login System", "Please enter the Username and
Password")
# print("hiii",selected_image)
if name == Chakradhar:
isUser = 1
if password == Chakri:
if image == selected_image:
print("authenticated!!")
messagebox.showinfo("Login System", "authenticated!!")
break
else:
print("image is not correct")
messagebox.showinfo("Login System", "image is not correct")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
37
h.update(Yeetman.encode())
selected_password = h.hexdigest()
filepath = "credentialImages/orig_credentials.txt" # File Path
f = open(filepath, "r")
name = ""
password = ""
image = ""
str = ""
isUser = 0
while True:
string = f.readline() # Reading file line by line
if string == "":
if (isUser == 0):
print("username not exist")
messagebox.showinfo("Login System", "Please enter the correct
Username")
break
info = string.split(" ")
name = copy.deepcopy(info[0])
password = copy.deepcopy(info[1])
image = copy.deepcopy(info[2])
name = name.rstrip()
password = password.rstrip()
image = image.rstrip()
if name == Koushik:
isUser = 1
if password == Yeetman:
if image == selected_image:
print("authenticated!!")
messagebox.showinfo("Login System", "authenticated!!")
break
else:
print("image is not correct")
messagebox.showinfo("Login System", "image is not correct")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
38
str = ""
isUser = 0
while True:
string = f.readline() # Reading file line by line
if string == "":
if (isUser == 0):
print("username not exist")
messagebox.showinfo("Login System", "Please enter the correct
Username")
break
info = string.split(" ")
name = copy.deepcopy(info[0])
password = copy.deepcopy(info[1])
image = copy.deepcopy(info[2])
name = name.rstrip()
password = password.rstrip()
image = image.rstrip()
if name == Manikanta:
isUser = 1
if password == Mani:
if image == selected_image:
print("authenticated!!")
messagebox.showinfo("Login System", "authenticated!!")
break
else:
print("image is not correct")
messagebox.showinfo("Login System", "image is not correct")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
39
Username")
break
info = string.split(" ")
name = copy.deepcopy(info[0])
password = copy.deepcopy(info[1])
image = copy.deepcopy(info[2])
name = name.rstrip()
password = password.rstrip()
image = image.rstrip()
if name == Sathvik:
isUser = 1
if password == sathvik:
if image == selected_image:
print("authenticated!!")
messagebox.showinfo("Login System", "authenticated!!")
break
else:
print("image is not correct")
messagebox.showinfo("Login System", "image is not correct")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
def create_canvas(window):
window.title("Login Page")
window.geometry("1280x600")
num = randint(0, 2)
print("Random number = ", num)
selected_image = ""
imgList = utils.getCredentialImages()
40
selected_name = user_entry.get()
canvas.create_window(580, 130, anchor="nw", window=user_entry)
pas = StringVar()
password_entry = Entry(root, textvar=pas, font=("Ariel 12"), show="*")
selected_password = password_entry.get()
canvas.create_window(580, 210, anchor="nw", window=password_entry)
anchor=CENTER)
window.mainloop()
def start(window):
create_canvas(window)
Segments.py
41
import tkinter
from tkinter import *
import custom_button
import main_menu
import utils
from PIL import ImageTk, Image
import random
def start(window):
window.title("Graphical Authentication System")
window.geometry("1280x600")
imglist = utils.getSegmentedImages("circle")
random.shuffle(imglist)
imgClickData = []
42
img3 = img3.resize((200, 150),)
img3 = ImageTk.PhotoImage(img3)
canvas3.create_image(10, 10, anchor=NW, image=img3)
anchor=CENTER)
while True:
window.update_idletasks()
window.update()
if utils.checkAllClicked(imgClickData):
sortedClickList = sorted(imgClickData)
utils.setAllUnclicked(imgClickData)
43
image = image.rstrip()
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
44
# checks the credentials by somparing with original one
if name == Koushik:
isUser = 1
if password == Yeetman:
if image == selected_image:
print("authenticated!!")
messagebox.showinfo("Login System", "authenticated!!")
break
else:
print("image is not correct")
messagebox.showinfo("Login System", "image is not correct")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
45
# checks the credentials by somparing with original one
if name == Manikanta:
isUser = 1
if password == Mani:
if image == selected_image:
print("authenticated!!")
messagebox.showinfo("Login System", "authenticated!!")
break
else:
print("image is not correct")
messagebox.showinfo("Login System", "image is not correct")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
46
if name == Sathvik:
isUser = 1
if password == sathvik:
if image == selected_image:
print("authenticated!!")
messagebox.showinfo("Login System", "authenticated!!")
break
else:
print("image is not correct")
messagebox.showinfo("Login System", "image is not correct")
break
else:
print("password is not correct")
messagebox.showinfo("Login System", "password is not correct")
break
#root.title("Login Page")
#root.resizable(0, 0)
width = 700
height = 700
# image class names
img_name1 = "cat"
img_name2 = "flower"
img_name3 = "mouse"
47
# usernmae input feild display
user_entry = Entry(root, font=("Ariel 12"))
user_entry.focus()
selected_name = user_entry.get()
canvas.create_window(580, 130, anchor="nw", window=user_entry)
anchor=CENTER)
48
window.mainloop()
def start(window):
create_canvas(window)
Utils.py
import os
import datetime
from tkinter import *
from tkinter.ttk import *
from PIL import ImageTk, Image
def callback(event):
print("clicked at", event.x, event.y)
def getSegmentedImages(shape):
parentDir = "segmentedImages/" + shape
imagePaths = os.listdir(parentDir)
imagePaths = [parentDir + "/" + _path for _path in imagePaths]
return imagePaths
def getObscuredImages():
imagePaths = os.listdir("obscuredImages")
return imagePaths
def getgarbledImages():
imagePaths = os.listdir("garbledImages")
return imagePaths[:-1] # last file is txt file, don't need thats
def getCredentialImages():
imagePaths = os.listdir("credentialImages")
return imagePaths[:-1] # last file is txt file, don't need thats
class customImage:
def __init__(self, path, width=200, height=150):
self.path = path
self.img_width = width
self.img_height = height
49
# Add image to the Canvas Items
canvas.create_image(10, 10, anchor=NW, image=img)
return canvas
class imageClick:
def __init__(self, path):
self.id = int(path[-5])
self.path = path
self.isClicked = False
self.timeClicked = None
def setAllUnclicked(imgClickedData):
for obj in imgClickedData:
obj.isClicked = False
def checkAllClicked(imgClickedData):
for obj in imgClickedData:
if obj.isClicked is False:
return False
return True
for i in range(300000):
win.update_idletasks()
win.update()
win.destroy()
return
50
TESTCASES
6.1 Testcases
51
6.1 Testcases
S.No Test case name Test procedure Pre condition Expected Output
result
1. Main Menu Heading, HOME Next Page Success
Garbled System,
Obscure System,
Segmented System,
Password/Image
System,
52
Conclusion
The user-friendliness of the system could encourage widespread adoption, but it also
necessitates careful consideration of potential misuse or unintended access. Ongoing
research and updates should be integrated to adapt to emerging security challenges and
ensure the system's resilience in the face of evolving cyber threats.
Moreover, the project's implementation and evaluation shed light on the balance
between security and usability. Striking the right equilibrium ensures that users find the
authentication process intuitive while maintaining a high level of protection against
unauthorized access. Continuous monitoring of the system's performance, user
satisfaction, and security metrics will contribute to its overall effectiveness.
The project also serves as a foundation for potential future enhancements, such as
incorporating machine learning algorithms to adapt to user behaviour or integrating
multi-factor authentication for an added layer of security. Collaborative efforts with
cybersecurity communities can foster innovation and contribute to the ongoing
evolution of authentication systems.
Bibliography :
53
8.1 Textbooks
Computer science with python By M.Suresh.
Websites
https://www.jetbrains.com/pycharm/download/
https://github.com/
https://chat.openai.com/
https://python.org/
54
55