In this post I will help you build a random password generator in the most easiest and efficient way.
How can we build this ๐ค?
- First thing we will do is to ask the user what is the length of the string
- We will get random values from a list containing all the alphabets(both uppercase and lowercase), numbers and special characters like #,@,#...
โ ๏ธโ ๏ธโ ๏ธ Mistake we need to avoid โ ๏ธโ ๏ธโ ๏ธ
Most of the people generally makes this mistake while doing this project. they will create a list and they will start writing all the characters, numbers manually... like below code ๐๐
characters = ['a','b','c','d',......,'A','B','C'....]
This will definitely not make you a good programmer.
Instead do this โ โ
There is a module named string
in python which will give you all the alphabets and special characters.
Create a list which contain all the alphabets, numbers and special characters as shown below.
import string
# getting all the alphabets
characters = list(string.ascii_letters)
# adding numbers from 0 to 9
characters.extend(list(x for x in range(0,10)))
# adding all the special characters
characters.extend(list(string.punctuation))
characters
list will look as shown below.
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~']
๐ Complete Code for creating random password generator using Python.
import string
import random
num = int(input('Enter the length of password : '))
# getting all the alphabets
characters = list(string.ascii_letters)
# adding numbers from 0 to 9
characters.extend(list(x for x in range(0,10)))
# adding all the special characters
characters.extend(list(string.punctuation))
password = ''
for i in range(num):
password = password + str(random.choice(characters));
print(password)
Thanks for Reading ๐๐
Like and Follow.
Top comments (4)
Thanks a lot.
Welcome ๐
Hey, Lukasz,
This is just a beginner project which help someone to understand string module and random module. it's not like a real password generating project.
Thank You. :-)
Please do not use random.choice() for this kind of task.
This function doesn't generate cryptographically secure randomness and is not suited for this task.
The documentation mentions this: