How to create a Random password generator(with GUI) application using python?
Random password generator using Python in simple explanation.

I am a Engineer
Search for a command to run...
Random password generator using Python in simple explanation.

I am a Engineer
No comments yet. Be the first to comment.
Scalable Wireless Distributed Consensus for Autonomous Vehicles at Unsignalized Intersections

The Ultimate VLSI Roadmap is designed to help students and professionals gain clarity in choosing a role for their future careers.

A convolutional neural network (CNN) is a type of artificial neural network used primarily for image recognition and processing, due to its ability to

Natural language processing (NLP) is a branch of artificial intelligence that helps computers understand, interpret, and manipulate human language.

Introduction to Python

While creating a new account on any platform it is important to set a strong password so that outsiders and hackers will not be able to guess your password. In this blog, we are going to see how to create a Random password generator using python
from tkinter import *
from tkinter import messagebox
import re
import random
Tkinter is used for the GUI of the application re is used to check password strength random is used to generate random password
root=Tk()
root.title("Random password generator")

root is the main window of the application
top=Frame(root)
uc=Button(top,text="Upper Case",font=("Comic Sans MS", 15, "bold"),bg="green",command=lambda: change_mode("uc",uppercase))
lc=Button(top,text="Lower Case",font=("Comic Sans MS",15, "bold"),bg="red",command=lambda: change_mode("lc",lowercase))
num=Button(top,text="Numbers",font=("Comic Sans MS", 15, "bold"),bg="red",command=lambda: change_mode("num",number))
sym=Button(top,text="Symbols",font=("Comic Sans MS", 15, "bold"),bg="red",command=lambda: change_mode("sym",symbol))
uc.grid(row=0,column=0,padx=5)
lc.grid(row=0,column=1,padx=5)
num.grid(row=0,column=2,padx=5)
sym.grid(row=0,column=3,padx=5)
top.grid(row=0,column=0)

top(Frame):- It is the upper part of the application uc (Button):- It will turn on/off the Uppercase field lc (Button):- It will turn on/off the Lowercase field num (Button):- It will turn on/off the Numbers field sym (Button):- It will turn on/off the Symbols field
middle=Frame(root)
password_length=Scale(middle, from_=0, to=30,length=350,width=20, orient=HORIZONTAL)
password=Entry(middle,font=("Comic Sans MS", 20, "bold"))
generate=Button(middle,text="Generate",font=("Comic Sans MS", 13, "bold"),bg="green",command=generate_password)
password_length.grid(row=0,column=0,pady=20)
password.grid(row=1,column=0,padx=10)
generate.grid(row=1,column=1)
middle.grid(row=1,column=0,pady=5)
middle(Frame):- It is the lower part of the application
password_length(Scale) :- In which user can select password length
password(Entry):- In which password is going to be displayed
generate(Button):- It will invoke the generate_password function
def generate_password():
global uppercase,lowercase,number,symbol
global password
global password_length
lowercase_ch="abcdefghijklmnopqrstuvwxyz"
uppercase_ch="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
numbers="01234567890"
symbols="!@#$%^&*()?{}[]+^;.,<>"
if (lowercase or uppercase or number or symbol)==0:
messagebox.showinfo("Password generator", "Select atleast one field")
password_sample=""
if uppercase:
password_sample+=uppercase_ch
if lowercase:
password_sample+=lowercase_ch
if number:
password_sample+=numbers
if symbol:
password_sample+=symbols
p = "".join(random.sample(password_sample,int(password_length.get() )))
if(len(p)>=8):
if(bool(re.match('((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,30})',p))==True):
password.config(fg="green")
elif(bool(re.match('((\d*)([a-z]*)([A-Z]*)([!@#$%^&*]*).{8,30})',p))==True):
password.config(fg="red")
else:
password.config(fg="red")
password.delete(0,END)
password.insert(0,p)
def change_mode(what,color):
global uc,lc,num,sym
global uppercase,lowercase,number,symbol
if what=="uc":
if color:
uc.config(bg="red")
uppercase=0
else:
uc.config(bg="green")
uppercase=1
if what=="lc":
if color:
lc.config(bg="red")
lowercase=0
else:
lc.config(bg="green")
lowercase=1
if what=="num":
if color:
num.config(bg="red")
number=0
else:
num.config(bg="green")
number=1
if what=="sym":
if color:
sym.config(bg="red")
symbol=0
else:
sym.config(bg="green")
symbol=1
generate_password(function) will check which are fields checked by the user and based on the input length given by the user it will generate a password.
change_mode(function) will change the color of the button and set the field as 0/1 for example:- when lc(button) is clicked it will change green to red color and set lowercase(variable) to zero
from tkinter import *
from tkinter import messagebox
import re
import random
root=Tk()
root.title("Random password generator")
#global variables
uppercase=1
lowercase=0
number=0
symbol=0
#functions
def generate_password():
global uppercase,lowercase,number,symbol
global password
global password_length
lowercase_ch="abcdefghijklmnopqrstuvwxyz"
uppercase_ch="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
numbers="01234567890"
symbols="!@#$%^&*()?{}[]+^;.,<>"
if (lowercase or uppercase or number or symbol)==0:
messagebox.showinfo("Password generator", "Select atleast one field")
password_sample=""
if uppercase:
password_sample+=uppercase_ch
if lowercase:
password_sample+=lowercase_ch
if number:
password_sample+=numbers
if symbol:
password_sample+=symbols
p = "".join(random.sample(password_sample,int(password_length.get() )))
if(len(p)>=8):
if(bool(re.match('((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,30})',p))==True):
password.config(fg="green")
elif(bool(re.match('((\d*)([a-z]*)([A-Z]*)([!@#$%^&*]*).{8,30})',p))==True):
password.config(fg="red")
else:
password.config(fg="red")
password.delete(0,END)
password.insert(0,p)
def change_mode(what,color):
global uc,lc,num,sym
global uppercase,lowercase,number,symbol
if what=="uc":
if color:
uc.config(bg="red")
uppercase=0
else:
uc.config(bg="green")
uppercase=1
if what=="lc":
if color:
lc.config(bg="red")
lowercase=0
else:
lc.config(bg="green")
lowercase=1
if what=="num":
if color:
num.config(bg="red")
number=0
else:
num.config(bg="green")
number=1
if what=="sym":
if color:
sym.config(bg="red")
symbol=0
else:
sym.config(bg="green")
symbol=1
top=Frame(root)
uc=Button(top,text="Upper Case",font=("Comic Sans MS", 15, "bold"),bg="green",command=lambda: change_mode("uc",uppercase))
lc=Button(top,text="Lower Case",font=("Comic Sans MS",15, "bold"),bg="red",command=lambda: change_mode("lc",lowercase))
num=Button(top,text="Numbers",font=("Comic Sans MS", 15, "bold"),bg="red",command=lambda: change_mode("num",number))
sym=Button(top,text="Symbols",font=("Comic Sans MS", 15, "bold"),bg="red",command=lambda: change_mode("sym",symbol))
uc.grid(row=0,column=0,padx=5)
lc.grid(row=0,column=1,padx=5)
num.grid(row=0,column=2,padx=5)
sym.grid(row=0,column=3,padx=5)
top.grid(row=0,column=0)
middle=Frame(root)
password_length=Scale(middle, from_=0, to=30,length=350,width=20, orient=HORIZONTAL)
password=Entry(middle,font=("Comic Sans MS", 20, "bold"))
generate=Button(middle,text="Generate",font=("Comic Sans MS", 13, "bold"),bg="green",command=generate_password)
password_length.grid(row=0,column=0,pady=20)
password.grid(row=1,column=0,padx=10)
generate.grid(row=1,column=1)
middle.grid(row=1,column=0,pady=5)
root.mainloop()
Strong password

Weak password

github code:-click here