Python Program to generate one-time password (OTP)
Last Updated :
21 Aug, 2021
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 math, random
def generateOTP() :
digits = "0123456789"
OTP = ""
for i in range ( 4 ) :
OTP + = digits[math.floor(random.random() * 10 )]
return OTP
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 math, random
def generateOTP() :
string = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
OTP = ""
length = len (string)
for i in range ( 6 ) :
OTP + = string[math.floor(random.random() * length)]
return OTP
if __name__ = = "__main__" :
print ( "OTP of length 6:" , generateOTP())
|
Output:
OTP of length 6: pyelJl
Example #3: Using String constants
Python3
import random
import string
def rand_pass(size):
generate_pass = ''.join([random.choice( string.ascii_uppercase +
string.ascii_lowercase +
string.digits)
for n in range (size)])
return generate_pass
password = rand_pass( 10 )
print (password)
|
Output:
2R8gaoDKqn
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...