Table of Contents
Different methods to convert user input to asterisk in Python
In this tutorial we will cover different methods which we can use in Python to convert user input to asterisk. This is required when we are prompting user to input password and we don't want anyone to read the password entered by user. It is easier to just hide the user input but it would look mush better and professional to print asterisk for every key entered by user in the input.
We will explore 3 methods to achieve this scenario:
Python getpass is a method for securing password details. In any system it is important to keep the password details hidden, otherwise the system can be hacked easily, which is not something a client would want. In java or c/c++ we need to implement the masking techniques ourselves but python has the python getpass and other libraries that help in the masking of passwords.
Let us look at the different techniques of masking a password. We will be using Python 3.9 for testing all the programs in this article.
The python getpass library helps mask password. Although it doesn't cover our basic agenda of adding asterisk to password but we will use getpass with other modules in next examples. The implementation of code is pretty simple.
import getpass # Hide the password password = getpass.getpass() print(password)
Make sure you have the
getpass package installed. If not, type the following command in your terminal
$ pip install getpass
Another package that works as python
pwinput, this package masks the password into any character that you want in our case lets take asterisk as an example
$ pip install pwinput
The output must be as follows :
Collecting pwinput Using cached pwinput-1.0.2-py3-none-any.whl Installing collected packages: pwinput Successfully installed pwinput-1.0.2
pwinput to your code. Pass the prompt message as an argument to the
pwinput function and the character you want to mask it with as another argument.
The code is as follows :
import pwinput # python convert user input to asterisk password = pwinput.pwinput(prompt ="Enter your password: ", mask="*") print("Your password is:", password)
The output of the code is as follows
Enter your password: **** Your password is: 1234
Stdio mask is another package that works as python
getpass asterisk , you need to install the package first by using the command below
$ pip install stdio
The output should be as follows
Collecting stdiomask Using cached stdiomask-0.0.6-py3-none-any.whl Installing collected packages: stdiomask Successfully installed stdiomask-0.0.6
stdiomask on your system, import it to your program
import stdiomask. Use python
password = stdiomask.getpass()
If you want you can also prompt the user with a message like “
Enter your password” or “
input password” etc. this can be done using the prompt=”your message” argument to the python
getpass method. The code for this is as follows
import stdiomask # Convert user input to asterisk password = stdiomask.getpass(prompt="Enter password : ") print("Your password is:", password)
Output of this code is :
Enter password : **** Your password is: 1234
Example : A complete login page and security questions
import stdiomask import getpass print ("welcome to the secure system") passw=stdiomask.getpass(prompt="Enter password: ") while(1): if(passw=="1234"): print("Password Correct\n Answer security question ") securityQuestion= stdiomask.getpass(prompt="what is your birth date? ") if(securityQuestion=="19/03/2002"): print("YOU ARE IN...") else: print("sorry try again...") else: print("incorrect passoword...") break
The output of this code is
welcome to the secure system Enter password: **** Password Correct Answer security question what is your birth date? ********** YOU ARE IN...
In case of wrong credentials
~]# python3 script.py welcome to the secure system Enter password: ***** incorrect passoword...
We studied different masking ways in this article. Python
getpass is a function that allows you to mask the password of a user. It can be used in different packages that we learned in this article, including
getpass directly does not support an asterisk masking, we use other packages for that. In the end we looked at an example of how we can use
getpass as a secure password input method. This can help in a lot of information security building systems.