30 lines
911 B
Python
30 lines
911 B
Python
from onetimepass import valid_totp
|
|
from secrets import choice
|
|
|
|
|
|
def generate_secret(): # Function to return a random string with length 16.
|
|
secret = ''
|
|
while len(secret) < 16:
|
|
secret += choice('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567')
|
|
return secret
|
|
|
|
|
|
secret = generate_secret()
|
|
print('Enter the following secret in your authenticator app: ', secret)
|
|
print("""
|
|
Instructions for saving this secret it Google Authenticator:
|
|
1. Open Google Authenticator.
|
|
2. Click plus icon at the right bottom.
|
|
3. Click Enter a setup key.
|
|
4. Enter an Account name of your choice and enter the secret provided above.
|
|
5. Click Add.
|
|
""")
|
|
while True:
|
|
otp = int(input('Please enter the otp generated by your authenticator app: '))
|
|
authenticated = valid_totp(otp, secret)
|
|
if authenticated:
|
|
print('Correct otp, Authenticated!')
|
|
elif not authenticated:
|
|
print('Wrong otp, please try again.')
|
|
|