p = 3487583947589437589237958723892346254777
q = 8767867843568934765983476584376578389
e = 65537
cipher = 26369494845903294944045520286034018329014599704760363106090278637665342700044
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| from sympy import mod_inverse e = 65537 p = 3487583947589437589237958723892346254777 q = 8767867843568934765983476584376578389 cipher = 26369494845903294944045520286034018329014599704760363106090278637665342700044
n = p * q #计算模数 phi_n = (p - 1) * (q - 1) #计算欧拉函数
d = mod_inverse(e, phi_n) #计算私钥d=e^-1 mod ϕ(n)
m = pow(cipher, d, n) #m=cipher^d mod n使用 pow 函数进行模幂运算,效率更高
def num_to_ascii(m): # 将数字转换为字节流 m_bytes = m.to_bytes((m.bit_length() + 7) // 8, byteorder='big') # 将字节流转换为 ASCII 字符串 return m_bytes.decode('utf-8')
flag = num_to_ascii(m) print(f"flag = {flag}")
|
flag=TZCFlag{try_rsa}
)