A lightweight Python 2/3 package for handling HOTP/TOTP (Google Authenticator) authentication.
Project description
SpookyOTP
=========
Lightweight Python package for TOTP/HOTP (Google Authenticator) codes
Description
===========
This is a lightweight package for generating TOTP and HOTP codes used
for two-factor authentication. They can be used with Google Authenticator
or FreeOTP.
Some features (such as using different hashing algorithms or displaying
more than 6 digits) do not work with Google Authenticator.
URIs generated (and QR codes encoding them) follow the [Google Authenticator format](https://github.com/google/google-authenticator/wiki/Key-Uri-Format)
Example
=======
from spookyotp import (get_random_secret, TOTP, from_uri)
secret = get_random_secret(n_bytes=10)
totp = TOTP(secret, 'Example', 'user@example.org')
totp.save_qr_code('qr.png')
# you can now load the QR code with your app of choice
code = input("Enter code: ") # or raw_input in Python 2
matches = totp.compare(code)
if matches:
print("Correct!")
else:
print("Incorrect.")
# serialization and deserialization is supported via URI
uri = totp.get_uri()
new_totp = from_uri(uri)
Why Spooky?
===========
I created the git repo on Halloween, and there is already a project
called PyOTP.
=========
Lightweight Python package for TOTP/HOTP (Google Authenticator) codes
Description
===========
This is a lightweight package for generating TOTP and HOTP codes used
for two-factor authentication. They can be used with Google Authenticator
or FreeOTP.
Some features (such as using different hashing algorithms or displaying
more than 6 digits) do not work with Google Authenticator.
URIs generated (and QR codes encoding them) follow the [Google Authenticator format](https://github.com/google/google-authenticator/wiki/Key-Uri-Format)
Example
=======
from spookyotp import (get_random_secret, TOTP, from_uri)
secret = get_random_secret(n_bytes=10)
totp = TOTP(secret, 'Example', 'user@example.org')
totp.save_qr_code('qr.png')
# you can now load the QR code with your app of choice
code = input("Enter code: ") # or raw_input in Python 2
matches = totp.compare(code)
if matches:
print("Correct!")
else:
print("Incorrect.")
# serialization and deserialization is supported via URI
uri = totp.get_uri()
new_totp = from_uri(uri)
Why Spooky?
===========
I created the git repo on Halloween, and there is already a project
called PyOTP.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
SpookyOTP-1.1.1.tar.gz
(6.8 kB
view hashes)
Built Distributions
SpookyOTP-1.1.1-py2.7.egg
(5.8 kB
view hashes)
Close
Hashes for SpookyOTP-1.1.1-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87e6f9f45fdcfecf37e52c1d84241a28975ed965cdd3b9d931f2f1deb167f130 |
|
MD5 | aae58b65c7ee97253bee47fc8c3fd4a6 |
|
BLAKE2b-256 | f00c7d5ded00dd065d35f51952227c523feea547aa34751e5be7e010d42e6938 |