24 lines
685 B
Python
24 lines
685 B
Python
from __future__ import (absolute_import, division,
|
|
print_function, unicode_literals)
|
|
|
|
from pyotp.hotp import HOTP # noqa
|
|
from pyotp.otp import OTP # noqa
|
|
from pyotp.totp import TOTP # noqa
|
|
from . import utils # noqa
|
|
|
|
def random_base32(length=16, random=None,
|
|
chars=list('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567')):
|
|
|
|
# Use secrets module if available (Python version >= 3.6) per PEP 506
|
|
try:
|
|
import secrets
|
|
random = secrets.SystemRandom()
|
|
except ImportError:
|
|
import random as _random
|
|
random = _random.SystemRandom()
|
|
|
|
return ''.join(
|
|
random.choice(chars)
|
|
for _ in range(length)
|
|
)
|