- Generate Password in Python
- Generate Password Using the Random Module in Python
- Generate Password Using the Secrets Module in Python
We often hear about data breaches, cyber threats, and cyber attacks on systems; therefore, the security and confidentiality of the data have become a very important part of our lives. Now, one of how the data can be secured is by securing them with passwords.
In this article, we will be discussing password generation in Python.
Generate Password in Python
Passwords often come into the picture as we talk about security. Now, as these passwords are used to secure so much important data, therefore they must be difficult to crack by hackers.
The attackers often try to crack such passwords by randomly trying out different combinations of characters and guessing the right password.
When we humans manually generate passwords, they are often easy to crack. Many try combining their names with digits and symbols that are a cakewalk for hackers to crack.
Therefore, these passwords should be created such that they are not easy to crack. We have some password generation methods in Python which are difficult to crack and easy to make.
Now, let us discuss some of them in detail.
Generate Password Using the Random Module in Python
random module in Python generates random elements from a list. Moreover, we will use the
choice() method from the
random module of Python.
choice() method chooses the random elements from a list. Therefore, the
random.choice() method will be our main catch in generating a password using this method.
However, now you must be wondering what this list is that we are talking about. So, the list from which the
random.choice() method will choose will contain all the lowercase and uppercase letters, digits, and punctuation symbols.
Therefore, the passwords that will be generated will contain a random order of these characters that would be difficult to crack.
Now, we will use the
string module in Python to get all the lowercase, uppercase letter, digits, and punctuation symbols. The
ascii.lowercase method is used to get all the lowercase letters from the English alphabet, and
ascii.uppercase is used to get all the uppercase letters of the English alphabet.
For getting the digits and punctuation symbols, we use the
string.punctuation methods from the
string module in Python, respectively.
Let us see the code to generate a password using the
string modules in Python.
import random import string def passwordGen(length): lower = string.ascii_lowercase upper = string.ascii_uppercase digits = string.digits symbols = string.punctuation comb = lower + upper + digits + symbols result_str = ''.join(random.choice(comb) for i in range(length)) print("Password of length ", length, "is:", result_str) passwordGen(12) passwordGen(10) passwordGen(5)
Password of length 12 is: ^)n34W6~0Wdx Password of length 10 is: g&#'G-T\vn Password of length 5 is: &g/S3
Therefore, as you can see in the above output, we have three different-length passwords, which are unique and difficult to crack.
However, we have imported the
random and the
string module in the code example. Afterward, we made a function
passwordGen that takes a length as a parameter and prints a password of that specific length.
Inside the function, we have stored all the letters, digits, and symbols in different variables. Now, we have combined all these characters into a single string and stored it in a variable
Now, we have used
random.choice(comb) to randomly choose characters from the string
comb for each index up to the specified length and then print the results.
Generate Password Using the Secrets Module in Python
One more module in Python is used to generate strong cryptographic random numbers for security purposes. This module is known as the
secrets module; however, this module is available from Python version 3.6 and more.
secrets module provides an operating system’s most secure source of randomness; therefore, the passwords generated are more secure and effective. Now let us discuss the program to generate the password using Python’s
The program is similar to the one we have previously discussed but using the
secrets module is more secure and effective in securing our systems.
import string import secrets def passwordGen(len): combination = string.ascii_letters + string.digits + string.punctuation password = ''.join(secrets.choice(combination) for i in range(len)) print("Password is: ", password) passwordGen(12) passwordGen(8)
Password is: Gz!*j3p4xd$Z Password is: 5#;CSIa7
Therefore, as you can see in the output, we have made a method
passwordGen in which we have a variable
combination that combines all the letters, digits, and punctuation marks for creating a password using the methods of the
string module in Python.
Afterward, we used the
secrets.choice(combination) method and gave it all the characters to choose from to make a password of a given length of
len and then print it. Therefore, we perform password generation in Python using the
In this article, we discussed how to generate passwords in Python. Since security is a major requirement in this era, the generation of safe and secured passwords is very important.
For this purpose, Python has two modules, namely,
secrets, that help generate difficult and not-so-easy-to-crack passwords. However, both modules take help from the
string module to take up a combination of characters to choose from.
secrets module is implemented from Python version 3.6 but is still considered a more secure and safe way to generate passwords.
- Remove Commas From String in Python
- Check a String Is Empty in a Pythonic Way
- Convert a String to Variable Name in Python
- Remove Whitespace From a String in Python
- Extract Numbers From a String in Python
- Convert String to Datetime in Python