Нахождение корня очень большого числаPython

Программы на Python
Ответить
Anonymous
 Нахождение корня очень большого числа

Сообщение Anonymous »

Сейчас я прохожу CTF своего курса по ИТ-безопасности и мне нужно найти токен для службы регистрации Kerberos. Сервер использует ошибочное шифрование, подобное RSA. (да, это специально и не подлежит изменению). Есть ли способ получить токен без грубого перебора? После этого у меня будет много кода, который потребует тщательного тестирования, но каждое тестирование занимает 10–15 минут, потому что сначала мне нужно перебрать токен.
Сервер:
Сервер:

if option == "get_token":
e = 0x10001
self.token = secrets.randbits(16)
# I heard with RSA you need some kind of private key to reverse this.
# Although I didn't read the article very thoroughly.
token_enc = pow(self.token, e)

return { "token": hex(token_enc) }

Мой код:
e = 0x10001
#guess token
enc_token = int(get_token()["token"], 16)
for token in range(2 ** 16):
print(token)
if pow(token, e) == enc_token:
print("SOLVED! " + str(token))
right_token = token
break



Подробнее здесь: https://stackoverflow.com/questions/792 ... rge-number
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»