Generating Strong Password using Python

27 Jan, 2022
Having a weak password is not good for a system that demands high confidentiality and security of user credentials. It turns out that people find it difficult to make up a strong password that is strong enough to prevent unauthorized users from memorizing it.  
This article uses a mixture of numbers, alphabets, and other symbols found on the computer keyboard to form a 12-character password which is unpredictable and cannot easily be memorized.  
The components of the password are represented in the form of arrays.
Use the random method to select at least one character from each array of characters.
Since the 12-character password is required, so fill the rest of the length of the password left with randomly selected characters from an array formed from the combination of all the characters needed in the final password. Anytime the password is generated, shuffle the password using random.shuffle() to ensure that the final password does not follow a particular pattern.
Creating Random Password Generator Using Python | GeeksforGeeks - YouTubeGeeksforGeeks529K subscribersCreating Random Password Generator Using Python | GeeksforGeeksWatch laterShareCopy linkInfoShoppingTap to unmuteIf playback doesn't begin shortly, try restarting your device.More videosMore videosYou're signed outVideos you watch may be added to the TV's watch history and influence TV recommendations. To avoid this, cancel and sign in to YouTube on your computer.CancelConfirmSwitch cameraShareInclude playlistAn error occurred while retrieving sharing information. Please try again later.Watch on0:000:000:00 / 9:13•Live•<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><a href="https://www.youtube.com/watch?v=U_ZCiZ1TgOo" target="_blank">Try watching this video on www.youtube.com</a>, or enable JavaScript if it is disabled in your browser.</div></div>
Python3
import randomimport array # maximum length of password needed# this can be changed to suit your password lengthMAX_LEN = 12 # declare arrays of the character that we need in out password# Represented as chars to enable easy string concatenationDIGITS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] LOCASE_CHARACTERS = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',                     'i', 'j', 'k', 'm', 'n', 'o', 'p', 'q',                     'r', 's', 't', 'u', 'v', 'w', 'x', 'y',                     'z'] UPCASE_CHARACTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',                     'I', 'J', 'K', 'M', 'N', 'O', 'P', 'Q',                     'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y',                     'Z'] SYMBOLS = ['@', '#', '$', '%', '=', ':', '?', '.', '/', '|', '~', '>',           '*', '(', ')', '<'] # combines all the character arrays above to form one arrayCOMBINED_LIST = DIGITS + UPCASE_CHARACTERS + LOCASE_CHARACTERS + SYMBOLS # randomly select at least one character from each character set aboverand_digit = random.choice(DIGITS)rand_upper = random.choice(UPCASE_CHARACTERS)rand_lower = random.choice(LOCASE_CHARACTERS)rand_symbol = random.choice(SYMBOLS) # combine the character randomly selected above# at this stage, the password contains only 4 characters but# we want a 12-character passwordtemp_pass = rand_digit + rand_upper + rand_lower + rand_symbol  # now that we are sure we have at least one character from each# set of characters, we fill the rest of# the password length by selecting randomly from the combined# list of character above.for x in range(MAX_LEN - 4):    temp_pass = temp_pass + random.choice(COMBINED_LIST)     # convert temporary password into array and shuffle to    # prevent it from having a consistent pattern    # where the beginning of the password is predictable    temp_pass_list = array.array('u', temp_pass)    random.shuffle(temp_pass_list) # traverse the temporary password array and append the chars# to form the passwordpassword = ""for x in temp_pass_list:        password = password + x         # print out passwordprint(password)
Output :  
yf2byU$@zTg5
 
nikhilaggarwal3
vallabhwebdeveloper
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Different ways to create Pandas Dataframe
Enumerate() in Python
Read a file line by line in Python
Python String | replace()
How to Install PIP on Windows ?
*args and **kwargs in Python
Python Classes and Objects
Iterate over a list in Python
Introduction To PYTHON