Advertisement
trenthor

OTP

Apr 5th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.90 KB | None | 0 0
  1. #---------------# OTP #---------------#
  2.  
  3. import string
  4. import sys
  5. import operator
  6. import json
  7. import random
  8. import time
  9. import getpass
  10. import hashlib
  11. from time import ctime, strftime, gmtime
  12.  
  13. def newUser():
  14.     outFile = open("secrets", 'a')
  15.     user = raw_input("User: ");
  16.     secret = hashlib.md5(getpass.getpass("Local Password: ")).hexdigest()
  17.     seed = hashlib.md5(getpass.getpass("Seed Password: ")).hexdigest()
  18.     outFile.write(user+"|")
  19.     outFile.write(secret+"|")
  20.     outFile.write(seed+"\n")
  21.  
  22. def login():
  23.     inFile = open("secrets", "r")
  24.     userList = list()
  25.     secretList = list()
  26.     seedList = list()
  27.     tokenList = list()
  28.     for line in inFile:
  29.         secrets = line.split("|")
  30.         userList.append(secrets[0])
  31.         secretList.append(secrets[1])
  32.         seedList.append(secrets[2])
  33.  
  34.     userCurrent = raw_input("User: ")
  35.     secretCurrent = hashlib.md5(getpass.getpass("Password: ")).hexdigest()
  36.     (strftime("%Y-%m-%d %H:%M", time.gmtime()))
  37.     if userCurrent in userList and secretCurrent in secretList:
  38.         i = userList.index(userCurrent)
  39.         j = secretList.index(secretCurrent)
  40.         if i == j:
  41.             print("Logged In")
  42.             #print (seedList[i]+strftime("%Y-%m-%d %H:%M", time.gmtime()))
  43.             tokenList.append(hashlib.md5(seedList[i]+strftime("%Y-%m-%d %H:%M", time.gmtime())).hexdigest())
  44.             for i in range (1, 5):
  45.                 tokenList.append(hashlib.md5(tokenList[i-1]).hexdigest())
  46.             opt = "1"
  47.             while (opt == "1"):
  48.                 opt = raw_input("Press 1 to Generate a Token or any Key to Exit\n")
  49.                 if(tokenList):
  50.                     thisToken = tokenList.pop()
  51.                     print(thisToken[3]+thisToken[5]+thisToken[7]+thisToken[11])
  52.                 else:
  53.                     print("No Valid Tokens Remaining")
  54.             #print(tokenList)
  55.         else:
  56.             print ("Wrong User or Password")
  57.     else:
  58.         print ("Wrong User or Password")
  59.    
  60.    
  61.    
  62.        
  63.    
  64.    
  65. while(1):
  66.     opt = input("Press 1 for New User\nPress 2 for Login\n")
  67.  
  68.     if opt == 1:
  69.         newUser()
  70.     elif opt == 2:
  71.         login()
  72.     else:
  73.         print("invalid option")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement