import hashlib
from sympy import nextprime
from Crypto.PublicKey import RSA
from Crypto.Signature import pss
from Crypto.Hash import SHA256
from Crypto.Util.number import inverse
TARGET_USER = "admin"
TARGET_MESSAGE = "Hello"
def generate_admin_key():
print(f"[*] Generating deterministic 512-bit key for: {TARGET_USER}")
# Deterministic seed
seed_str = f"{TARGET_USER}_lovenote_2026_valentine"
seed_bytes = seed_str.encode()
# Generate p
sha256_p = hashlib.sha256(seed_bytes).hexdigest()
p = nextprime(int(sha256_p, 16))
# Generate q
sha256_q = hashlib.sha256(seed_bytes + b"pki").hexdigest()
q = nextprime(int(sha256_q, 16))
n = p * q
e = 65537
phi = (p - 1) * (q - 1)
d = inverse(e, phi)
key = RSA.construct((n, e, d, p, q))
modBits = key.size_in_bits()
h = SHA256.new(TARGET_MESSAGE.encode())
emLen = (modBits - 1 + 7) // 8
maxSalt = emLen - h.digest_size - 2
print(f"[*] Key size: {modBits} bits")
print(f"[*] EM Length: {emLen} bytes")
print(f"[*] Calculated Max Salt: {maxSalt} bytes")
if maxSalt < 0:
raise ValueError("Key too small for PSS padding.")
signer = pss.new(key, salt_bytes=maxSalt)
signature = signer.sign(h)
return signature.hex()
if __name__ == "__main__":
try:
signature = generate_admin_key()
print("\n" + "="*60)
print(" >>> FINAL ZEUS SIGNATURE <<< ")
print("="*60)
print(signature)
print("="*60)
print("1. Go to Verify page.")
print("2. User: zeus")
except Exception as e:
print(f"[!] Error: {e}")
And Boom You will got the Flag.