25 lines
No EOL
694 B
Python
25 lines
No EOL
694 B
Python
from Crypto.Util.number import isPrime, getPrime, bytes_to_long
|
|
from Crypto.PublicKey import RSA
|
|
|
|
rounds = 5
|
|
e = 65537
|
|
|
|
for i in range(rounds):
|
|
print('*'*10, f'Round {i+1}/{rounds}', '*'*10)
|
|
|
|
pumpkin1 = getPrime(110)
|
|
pumpkin2 = getPrime(110)
|
|
n = pumpkin1 * pumpkin2
|
|
large_pumpkin = RSA.construct((n, e)).exportKey()
|
|
print(f'\n🎃Can you crack this pumpkin🎃?\n{large_pumpkin.decode()}\n')
|
|
|
|
assert isPrime(_pmp1 := int(input('enter your first pumpkin = '))), exit()
|
|
assert isPrime(_pmp2 := int(input('enter your second pumpkin = '))), exit()
|
|
|
|
if n != _pmp1 * _pmp2:
|
|
print('wrong! bye...')
|
|
exit()
|
|
|
|
print()
|
|
|
|
print(open('flag.txt').read()) |