DEV Community

Vamsi Krishna
Vamsi Krishna

Posted on

Random Password generator - Easiest way { Python }

In this post I will help you build a random password generator in the most easiest and efficient way.

How can we build this ๐Ÿค”?

  1. First thing we will do is to ask the user what is the length of the string
  2. 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'....]
Enter fullscreen mode Exit fullscreen mode

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))
Enter fullscreen mode Exit fullscreen mode

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, '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~']
Enter fullscreen mode Exit fullscreen mode

๐Ÿš€ 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)
Enter fullscreen mode Exit fullscreen mode

Thanks for Reading ๐Ÿ’–๐Ÿ’–
Like and Follow.

Top comments (4)

Collapse
 
krishnaagarwal profile image
Krishna Agarwal

Thanks a lot.

Collapse
 
vamsitupakula_ profile image
Vamsi Krishna

Welcome ๐Ÿ™Œ

Collapse
 
vamsitupakula_ profile image
Vamsi Krishna

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. :-)

Collapse
 
lksmrqrdt profile image
Lukas Marquardt • Edited

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:

Warning: The pseudo-random generators of this module should not be used for security purposes. For security or cryptographic uses, see the secrets module.