According to the official
python website, Python is a programming language that lets you work quickly and integrate systems more effectively.
A much more specific meaning would be: its an
high-level programming language with dynamic semantics.
In this article we will code a python program that generates a random 8 characters long password.
A password is a secret phrase that must be used to allow access to a computer system or service.
To ensure each password generated is strong, it must contain each of the following:
- 2 random lower case letters
- 2 random upper case letters
- 2 random numeric characters
- 2 random symbols
The process involves generating two characters of each type (letters, numbers and symbols), combine them in a
shuffle them randomly and
join them to a string.
List: A list is a python data type used to store multiple items in a single variable.
To begin writing the program, its important we understand the requirements.
We need to make the password as unique and random as possible. For this we need to import
Module: A module is a Python file that's intended to be imported into scripts
library : Python Libraries are a set of useful functions that eliminate the need for writing codes from scratch.
Importing the required modules.
import random import string
String module has a pre-initialized string used as string constant,
Create a helper function for splitting a string.
def split(word): return [char for char in word]
split helper function will split
string.printable into a list of all the individual charters of ascii.
all_strings = split(string.printable)
Split returns a list containing all of the ascii characters, which we store in a variable
Extract new lists for each type of ascii characters
digits = all_strings[0:10] lowerCase = all_strings[10:36] upperCase = all_strings[36:62] syms = all_strings[62:94]
We use the indexing of each of the characters in the
all_strings list to extract from and to the required index of each type of character.
Indexing in python starts from 0.
Create helpers functions to generate random characters of each type
# create helper functions to generate two random characters of each def randomLower(lowerCase): return random.choices(lowerCase, k=2) def randomUpper(upperCase): return random.choices(upperCase, k=2) def randomDigits(digits): return random.choices(digits, k=2) def randomSyms(syms): return random.choices(syms, k=2)
choices() method returns a list with the randomly selected element from the specified sequence
To refactor the code further:
def twoRandom(coll): return random.choices(coll, k=2)
The function will return two random items from a list passed to in.
Concatenate the random strings in one list
temp = twoRandom(syms)+twoRandom(digits)+twoRandom(lowerCase) +twoRandom(upperCase) random.shuffle(temp) passwd = "".join(temp)
concatenate the generated string in one list and use the
shuffle() method to shuffle the list.
join() method is used to join items in a list by a delimiter.
Now we can print out the result