sch9_ctf_3/tasks/cringe_random/cringe_random.py

27 lines
532 B
Python

import random
n = 10
flag_len = 20
state = [random.randint(0, (1 << n) - 1) for i in range(n)]
k = 0
def update_state():
for i in range(n):
state.append(state[0])
for j in range(1, n):
state[j] ^= ((state[0] >> j) & 1) << i
state.pop(0)
def get_random():
global k
if(k == n):
k = 0
update_state()
k += 1
return state[k - 1]
flag='ctf{' + (''.join([chr(get_random() % 26 + ord('a')) for i in range(flag_len)])) + '}'
print(flag)
update_state()
print(state)