Skip to content

Instantly share code, notes, and snippets.

@changtimwu
Created April 29, 2021 11:32
Show Gist options
  • Select an option

  • Save changtimwu/dd9f61541f461d482026f6f37311560d to your computer and use it in GitHub Desktop.

Select an option

Save changtimwu/dd9f61541f461d482026f6f37311560d to your computer and use it in GitHub Desktop.
import random, time
from randcrack import RandCrack
import string
random_id_characters = string.ascii_letters + string.digits
random.seed(time.time())
rc = RandCrack()
for i in range(624):
rc.submit(random.getrandbits(32))
def gen_random_id():
return ''.join(random.choice(random_id_characters) for i in range(32))
def gen_randcrack_id():
return ''.join( rc.predict_choice(random_id_characters) for i in range(32))
print("Random result: {}\nCracker result: {}".format(random.randrange(0, 4294967295), rc.predict_randrange(0, 4294967295)))
print("Random result: {}\nCracker result: {}".format( gen_random_id(), gen_randcrack_id() ))
@changtimwu

changtimwu commented Apr 30, 2021

Copy link
Copy Markdown
Author

test the underlying C module

def test2():
    rins = random._random.Random()
    rins.seed(None)  #this trigs linux's getrandom
    for i in range(32):
        rv = rins.getrandbits(6)
        state = rins.getstate()
        print("{}/{}: rv={} ".format(state[-1], len(state), rv))

@changtimwu

changtimwu commented Apr 30, 2021

Copy link
Copy Markdown
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment