题目链接: https://www.ichunqiu.com/battalion?t=1&r=61107
下载附件,得到一个压缩包
里面有
都提示是rsa加密了,那么
exponent是rsa中常说的的e,modulus是常说的m
下面贴一下openssl rsa 的命令
使用python转换一下16进制
用在线网址分解出p,q
然后上脚本(python2)
#coding:utf-8
import gmpy
import rsa
p = 302825536744096741518546212761194311477
q = 325045504186436346209877301320131277983
n = 98432079271513130981267919056149161631892822707167177858831841699521774310891
e = 65537
d = int(gmpy.invert(e , (p-1) * (q-1)))
privatekey = rsa.PrivateKey(n , e , d , p , q) #根据已知参数,计算私钥
with open("encrypted.message1" , "rb") as f:
print(rsa.decrypt(f.read(), privatekey).decode()) #使用私钥对密文进行解密,并打印
with open("encrypted.message2" , "rb") as f:
print(rsa.decrypt(f.read(), privatekey).decode()) #使用私钥对密文进行解密,并打印
with open("encrypted.message3" , "rb") as f:
print(rsa.decrypt(f.read(), privatekey).decode()) #使用私钥对密文进行解密,并打印
将三行合起来得到flag