Python | Program to generate one-time password (OTP)
One-time Passwords (OTP) is a password that is valid for only one login session or transaction in a computer or a digital device. Now a days OTP’s are used in almost every service like Internet Banking, online transactions etc. They are generally combination of 4 or 6 numeric digits or a 6-digit alphanumeric.
random() function can be used to generate random OTP which is predefined in random library. Let’s see how to generate OTP using Python.
Used Function:
random.random(): This function returns any random number between 0 to 1.
math.floor(): It returns floor of any floating number to a integer value.Using the above function pick random index of string array which contains all the possible candidates of a particular digit of the OTP.
Example #1 : Generate 4 digit Numeric OTP
# import library import math, random # function to generate OTP def generateOTP() : # Declare a digits variable # which stores all digits digits = "0123456789" OTP = "" # length of password can be chaged # by changing value in range for i in range(4) : OTP += digits[math.floor(random.random() * 10)] return OTP # Driver code if __name__ == "__main__" : print("OTP of 4 digits:", generateOTP()) |
Output:
OTP of 4 digits: 3211
Example #2: Generate alphanumeric OTP of length 6
# import library import math, random # function to generate OTP def generateOTP() : # Declare a string variable # which stores all string string = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' OTP = "" length = len(string) for i in range(6) : OTP += string[math.floor(random.random() * length)] return OTP # Driver code if __name__ == "__main__" : print("OTP of length 6:", generateOTP()) |
Output:
OTP of length 6: pyelJl
Example #3: Using String constants
# Importing random to generate # random string sequence import random # Importing string library function import string def rand_pass(size): # Takes random choices from # ascii_letters and digits generate_pass = ''.join([random.choice( string.ascii_uppercase + string.ascii_lowercase + string.digits) for n in range(size)]) return generate_pass # Driver Code password = rand_pass(10) print(password) |
Output:
2R8gaoDKqn
Recommended Posts:
- Python program to check the validity of a Password
- Password validation in Python
- Generating Strong Password using Python
- getpass() and getuser() in Python (Password without echo)
- Python | Random Password Generator using Tkinter
- Python | Prompt for Password at Runtime and Termination with Error Message
- Generate all permutation of a set in Python
- Program to generate all possible valid IP addresses from given string
- Generate a graph using Dictionary in Python
- How to generate byte code file in python ?
- Python | Generate random string of given length
- Python | Generate QR Code using pyqrcode module
- Python | Generate successive element difference list
- Python | Generate test datasets for Machine learning
- Python | Generate random numbers within a given range and store in a list
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



