Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #---------------# OTP #---------------#
- import string
- import sys
- import operator
- import json
- import random
- import time
- import getpass
- import hashlib
- from time import ctime, strftime, gmtime
- def newUser():
- outFile = open("secrets", 'a')
- user = raw_input("User: ");
- secret = hashlib.md5(getpass.getpass("Local Password: ")).hexdigest()
- seed = hashlib.md5(getpass.getpass("Seed Password: ")).hexdigest()
- outFile.write(user+"|")
- outFile.write(secret+"|")
- outFile.write(seed+"\n")
- def login():
- inFile = open("secrets", "r")
- userList = list()
- secretList = list()
- seedList = list()
- tokenList = list()
- for line in inFile:
- secrets = line.split("|")
- userList.append(secrets[0])
- secretList.append(secrets[1])
- seedList.append(secrets[2])
- userCurrent = raw_input("User: ")
- secretCurrent = hashlib.md5(getpass.getpass("Password: ")).hexdigest()
- (strftime("%Y-%m-%d %H:%M", time.gmtime()))
- if userCurrent in userList and secretCurrent in secretList:
- i = userList.index(userCurrent)
- j = secretList.index(secretCurrent)
- if i == j:
- print("Logged In")
- #print (seedList[i]+strftime("%Y-%m-%d %H:%M", time.gmtime()))
- tokenList.append(hashlib.md5(seedList[i]+strftime("%Y-%m-%d %H:%M", time.gmtime())).hexdigest())
- for i in range (1, 5):
- tokenList.append(hashlib.md5(tokenList[i-1]).hexdigest())
- opt = "1"
- while (opt == "1"):
- opt = raw_input("Press 1 to Generate a Token or any Key to Exit\n")
- if(tokenList):
- thisToken = tokenList.pop()
- print(thisToken[3]+thisToken[5]+thisToken[7]+thisToken[11])
- else:
- print("No Valid Tokens Remaining")
- #print(tokenList)
- else:
- print ("Wrong User or Password")
- else:
- print ("Wrong User or Password")
- while(1):
- opt = input("Press 1 for New User\nPress 2 for Login\n")
- if opt == 1:
- newUser()
- elif opt == 2:
- login()
- else:
- print("invalid option")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement