题目:给了俩文件
题目.txt
data.txt
从data文件里面的第一行大括号里面,可以第一个数字是n,第二个数字是e.
下面的每一行都代表一个c
可以解出每一行c所代表的m
先把n分解成p,q
代码:
#coding:utf-8
import gmpy2
N,p,q,e=920139713,18443,49891,19
d=gmpy2.invert(e,(p-1)*(q-1))
result=[]
with open("D:\\ctf\\buuctf\\RSAROOL\\02c01a13-3a86-47de-8648-f03328a5e5d8\\RsaRoll\\data.txt","r") as f:
for line in f.readlines():
line=line.strip('\n')#去掉列表中每一个元素的换行符
result.append(chr(pow(int(line),d,N)))
flag=''
for i in result:
flag += i
print(flag)
print(result)
for循环里面求每行所对应的m所代表的值
解出flag