RANDOM PASSWORD GENERATOR
Random password generator is a programme that generates reliable
random passwords of chosen specifications using alphabets, numbers, and
symbols.
BACHELOR OF TECHNOLOGY
B.Sc.IT
SUBMITTED BY:
PRANETA PATEL (212022067)
ARCHANA DEVMORARI (212022021)
DHRUVI PATEL (212022075)
KRISHA JARIWALA (212022070)
PARMI GAJERA (212022022)
ROSHAN KIKANI (122023001)
GUIDED BY:
Mr. Rithik Vaishya
RANDOM PASSWORD GENERATOR
Team No. 6
Team Leader: Praneta Patel
Team Members:
1. Archana Devmorari
2. Dhruvi Patel
3. Krisha Jariwala
4. Parmi Gajera
5. Praneta Patel
6. Roshan Kikani
Contact no of leader:- 6355527635
University:-Auro University
Batch:-2022-25
Date:- 28th April, 2023
pg. 2
1 Contents
2 EXECUTIVE SUMMARY...........................................................................................................4
1. BACKGROUND...........................................................................................................................5
1.1. AIM........................................................................................................................................5
1.2. TECHNOLOGIES......................................................................................................................5
1.3. HARDWARE ARCHITECTURE..................................................................................................6
1.4. SOFTWARE ARCHITECTURE....................................................................................................6
2. SYSTEM.......................................................................................................................................7
2.1. REQUIREMENTS.....................................................................................................................7
2.1.1. FUNCTIONAL REQUIREMENTS...............................................................................7
2.1.2. USER REQUIREMENTS..............................................................................................7
2.1.3. ENVIRONMENT REQUIREMENTS...........................................................................7
2.2. DESIGN AND ARCHITECTURE.................................................................................................7
2.3. IMPLEMENTATION.................................................................................................................8
2.4. TESTING.................................................................................................................................8
2.5. GRAPHICAL USER INTERFACE (GUI) LAYOUT..........................................................................8
3 SNAPSHOTS OF PROJECT:-.............................................................................................................9
3.1 Code of the Project:-............................................................................................................11
4 CONCLUSION:-.............................................................................................................................16
pg. 3
2 EXECUTIVE SUMMARY
In the modern world, where everything is done online, online security is crucial. Our
accounts are prevented from being hacked or stolen by passwords. Having said that, coming
up with a strong password and keeping it in mind is a tedious process. And many people are
not good at picking random password and tend to choose their birth date or their name as a
password which may create Privacy issues and traditional Desktop computers are able to
hack them easily in few fractions of second.
On internet, typical password lists contain most user-generated passwords. Certain
passwords are simple to remember, but they are also simple for an opponent to decipher. But
random passwords are made up of random character combinations, they are difficult to
remember and difficult to decipher. And it is also difficult for few users to remember
password for each account, websites and digital accounts so when we generate a random
password, it automatically autosaves it to user's device. We may create a programme that
receives input from the user and uses that information to produce a random password.
Random password generator is meant to be the safest platforms to create new passwords.
This is because random means something that is not predictable, it is not something based on
data set (previous outcomes, patterns). Thus in spite of setting same character set and running
the algorithm number of times, there are rare chances that we will get the same output. So we
can also say that two different users running algorithm at same time with same character set
would get unique passwords.
To overcome cyber attacks we must make it habitual to use a different password for each site
referred. This would reduce chances that a hacker can go through all the data and sites you
have visited.
Using a password generator would help you build a strong password and would prevent you
from choosing a easy to crack password like silly mnemonics according to your likes and
dislikes which might be easily cracked if someone known wants to enter your private data.
One should also make it a habit to change password regularly and to use a password manager
to store the passwords securely.
Technology Used: -
The technology used for the creation of this project is Python. The mode is chosen with
consideration for the libraries it offers, resulting in an interactive and user-friendly interface.
Field of Project: -As discussed above in today’s world security is prime key to one’s secured
life. To maintain this security, we have a specialised domain of cyber security. Under this
domain the prime role is played by “PASSWORD”.Password creation is a tedious job and
thus to ease this job we have created a user-friendly application that would create random
password as per user’s requirement.
pg. 4
1. BACKGROUND
1.1.AIM
To ease the efforts of users creating different and strong passwords for various platforms
satisfying their unique needs. The primary aim of using a generator is to generate a well
protected and unpredictable passwords for all accounts of the users.
1.2.TECHNOLOGIES
The libraries used in the applications are:
1. String
2. Random
3. Tkinter
4. Pyperclip
5. PIL
The module of each library used:-
1) String
a) Ascii
b) Digits
c) Punctuation
2) Random
a) Sample
3) Tkinter
a) Title
b) Geometry
c) Config
d) Choice
e) Label
f) Radiobutton
g) Button
h) Entry
i) Mainloop
4) PIL
a) Image
b) ImageTk
pg. 5
1.3. HARDWARE ARCHITECTURE
A laptop is required of 4.0GB RAM. A processor of i3 8th GenCore ™ i5-11300H @
3.10GHz 3.11GHz.
1.4.SOFTWARE ARCHITECTURE
The application is based on Python language. We have use Spyder software (Version 5)
(python3.10).
pg. 6
2. SYSTEM
2.1.REQUIREMENTS
2.1.1. FUNCTIONAL REQUIREMENTS
A system with at least 16.0 GB RAM is required with a graphic card of 3.11 GHz.
Installed Python platform of 3.10 version. (We have used spyder python 3.10).
2.1.2. USER REQUIREMENTS
2.1.3. ENVIRONMENT REQUIREMENTS
pg. 7
2.2.DESIGN AND ARCHITECTURE
ENTER THE USER
NAME
SELECT THE STRENGTH
OF REQUIRED PASSWORD
IN TERMS OF (A)WEAK,
(B)MEDIUM, (C) STRONG
CLICK ON GENERATE
BUTTON
TRUE SATISFIED WITH
THE GENERATED
PASSWORD ?
CLICK
END
RESET
pg. 8
2.3.IMPLEMENTATION
Flow chart, er diagram
2.4.TESTING
2.5.GRAPHICAL USER INTERFACE (GUI) LAYOUT
Snapshots of gui
pg. 9
3 SNAPSHOTS OF PROJECT:-
Figure 1
pg. 10
Figure 2
pg. 11
Figure 3
3.1 Code of the Project:-
import random,string
from tkinter import *
from PIL import Image, ImageTk
root=Tk()
pg. 12
root.title("Random Password Generator")
Font=('arabic',12,'italic','bold')
screen_width=root.winfo_screenwidth()
screen_height=root.winfo_screenheight()
root.geometry('485x380')
image_0=Image.open("D:\\IBM MINI PROJECT\\istockphoto-1367134732-170667a.jpg")
bck=ImageTk.PhotoImage(image_0)
lbl=Label(root,image=bck)
lbl.place(x=0,y=0)
def selction():
selection= choice.get()
def reset():
passwordFeild.delete(first=0,last=16)
def generator():
weak=string.ascii_lowercase +string.ascii_uppercase
medium= string.ascii_uppercase + string.ascii_lowercase + string.digits
strong=string.ascii_lowercase + string.ascii_uppercase + string.digits + string.punctuation
if choice.get()==1:
passwordFeild.insert(0,random.sample(weak,val.get()))
elif choice.get()==2:
passwordFeild.insert(0,random.sample(medium,val.get()))
elif choice.get()==3:
passwordFeild.insert(0,random.sample(strong,val.get()))
pg. 13
choice=IntVar()
#creating a menu bar
menubar= Menu(root,background='blue',fg='white')
menubar.add_command(label="Exit",command=root.quit)
edit=Menu(menubar,tearoff=False,background='black',fg='white')
edit.add_command(label="Cut")
edit.add_command(label="Copy")
edit.add_command(label="Paste")
menubar.add_cascade(label="Edit",menu=edit)
help=Menu(menubar,tearoff=False,background='black',fg='white')
help.add_command(label="About")
menubar.add_cascade(label="Help",menu=help)
root.config(menu=menubar)
#creating welcome label
passwordLabel=Label(root,text='Password Generator',font=('arabic',20,'bold'),bg='blue',fg='white',)
passwordLabel.pack()
#labels for user interaction:-
Label(root,text='Enter User Name',fg='green').pack()
passwordFeild=Entry(root,font=Font,width=25,bd=2)
passwordFeild.pack()
label_space=Label(root)
label_space.pack()
label_password=Label(root,text="Strength of Password" ,fg='green')
label_password.pack()
pg. 14
label_space=Label(root)
label_space.pack()
rb1=Radiobutton(root,text='Weak',value=1,variable=choice,fg='green',command=selction)
rb1.pack()
label_space=Label(root)
label_space.pack()
rb2=Radiobutton(root,text='Medium',value=2,variable=choice,fg='green',command=selction)
rb2.pack()
label_space=Label(root)
label_space.pack()
rb3=Radiobutton(root,text='Strong',value=3,variable=choice,fg='green',command=selction)
rb3.pack()
label_space=Label(root)
label_space.pack()
val=IntVar()
spinlenth= Spinbox(root,from_=8, to_=15,textvariable=val,width=15)
spinlenth.pack()
button_submit=Button(root, text='Generate Password',fg='green',command=generator)
button_submit.pack()
button_reset=Button(root, text='RESET',fg='green',command=reset)
button_reset.pack()
pg. 15
passwordFeild=Entry(root,font=Font,width=25,bd=2)
passwordFeild.pack()
root.mainloop()
pg. 16
4 CONCLUSION:-
pg. 17