Open In App

Python Program to generate one-time password (OTP)

Last Updated : 21 Aug, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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  

Python3




# 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 changed
   # 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  

Python3




# 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

Python3




# 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

 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads