You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
756 B
28 lines
756 B
import json |
|
import sys |
|
|
|
# https://github.com/lynn/hello-wordl/blob/7da40c1f067eb1ec157d4c5b7a9bd8257ed39342/src/util.ts#L14 |
|
def rshift(n, a): return (n & 0xffff_ffff) >> a |
|
|
|
def mulberry32(rng_state): |
|
def worker(): |
|
nonlocal rng_state |
|
rng_state += 0x6d2b79f5; |
|
t = rng_state |
|
t = (t ^ rshift(t, 15)) * (t | 1) & 0xffff_ffff |
|
t ^= t + (t ^ rshift(t, 7)) * (t | 61) & 0xffff_ffff |
|
return (t ^ (t >> 14)) |
|
return worker |
|
|
|
with open('targets.json', 'r') as f: |
|
targets = json.load(f) |
|
|
|
targets = targets[:targets.index('murky') + 1] |
|
targets = [i for i in targets if len(i) == 5] |
|
|
|
rng = mulberry32(int(sys.argv[1])) |
|
while True: |
|
num = rng() |
|
index = num * len(targets) >> 32 |
|
print(f'{num:08x}', index, targets[index]) |
|
if targets[index] != '*****': break
|
|
|