哥们试了一下直接分解n,一下出来了,笑死了:
p=134686347363434739077179696034343762122063351875554587422579404066181894811778359922178856762431551454655211415469159411
47336786447889325606555333350540003
q=184320098295963861035583754613878378451706211792952932891265042313171305509799897271252054673797138350473001582563980092
29511746203459540859429194971855371
什么是秒杀!!
下面来看正常解法:
from Crypto.Util.number import *
from gmpy2 import *
e = 65537
n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657
c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751
for k in range(1,e): # 遍历(1,e)
if (e * dp - 1) % k == 0: # 判断e * dp - 1能否整除k
if n % ((e * dp -1) // k + 1) == 0: # 判断n能否整除p
p = (e * dp -1) // k + 1
q = n // ((e * dp -1) // k + 1)
d = invert(e,(p-1)*(q-1))
m = pow(c, d, n)
break
print(m)
print(long_to_bytes(m))