Skip to content

Instantly share code, notes, and snippets.

@moylop260
Created July 29, 2014 23:01
Show Gist options
  • Save moylop260/384343319f860d78bcc8 to your computer and use it in GitHub Desktop.
Save moylop260/384343319f860d78bcc8 to your computer and use it in GitHub Desktop.
import datetime
import pyotp
import qrcode
class TotpAuth:
def __init__(self, secret=None):
if secret is None:
secret = pyotp.random_base32()
self.secret = secret
self.totp = pyotp.TOTP(secret)
def generate_token(self):
return self.totp.now()
def valid(self, token):
token = int(token)
now = datetime.datetime.now()
time30secsago = now + datetime.timedelta(seconds=-30)
try:
valid_now = self.totp.verify(token)
valid_past = self.totp.verify(token, for_time=time30secsago)
return valid_now or valid_past
except:
return False
def qrcode(self, username):
uri = self.totp.provisioning_uri(username)
return qrcode.make(uri)
secret = raw_input("Ingrese enter o su cadena secreta: ") or None
obj = TotpAuth(secret)
if not secret:
print "secret",obj.secret
qrc = obj.qrcode("google auth test vauxoo")
img_path = "/tmp/borrar.jpg"
qrc.save( img_path )
print "QR code Saved"
token = obj.generate_token()
print token
valid_ok = obj.valid(token)
print valid_ok
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment