-
Notifications
You must be signed in to change notification settings - Fork 0
/
tokengen.py
49 lines (41 loc) · 1.14 KB
/
tokengen.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import random
import pymongo
import oath
import uuid
characters = "abcdefghijklmnopqrstuvwxyz"
def newtempname(ln=4):
choose = random.Random().choice
letters = [choose(characters) for dummy in range(ln)]
return ''.join(letters)
try:
conn=pymongo.MongoClient()
print ("Connected successfully!!!")
except pymongo.errors.ConnectionFailure as e:
print ("Could not connect to MongoDB: %s" % e )
import sys
sys.exit()
db = conn.redrdb
tokens = set()
counter = 0
while len(tokens) < ((26**4)*0.9):
token = newtempname()
if token not in tokens:
tokens.add(token)
seed = random.randint(0,(10**6)*0.9)
tdata = {'token': token, "tokenid": counter, "usecount": seed, 'seed': seed}
db.tokens.insert(tdata)
print(str(tdata))
counter = counter + 1
key = uuid.uuid4().hex
pins = set()
attempts = 1
counter = 0
while len(pins) < ((10**6)*0.9):
pin = oath.hotp(key,attempts)
if pin not in pins:
pins.add(pin)
db.pins.insert({"pin": pin, "pinid": counter})
print('added pin ' + pin + ' pinid ' + str(counter))
counter = counter + 1
attempts = attempts + 1
print('Done.')