BUUCTF_RSA
下载文件解压得到两个文件
既然题目都说是RSA算法了,看文件名也能猜到一个是公钥文件( pub.key )一个是需要解密的文件( flag.enc ),将他们转化为txt格式查看:
乱码不用管它.
这个是公钥,用在线计算工具转换 ①
得到e和n,我们拿n去求p和q ②
然后把 p,q,e,n 输入到 RSA-Tool 2 by tE! 上,把 Number Base 改成 10 ,得到 d ,如图:
写个python脚本将密文解密,如下:
import rsa
e = 65537
n = 86934482296048119190666062003494800588905656017203025617216654058378322103517
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
d = 81176168860169991027846870170527607562179635470395365333547868786951080991441
key = rsa.PrivateKey(n,e,d,q,p)
with open('D:/applicance/reverse\ctf/buuctf/output/flag.txt','rb')as data:
data = data.read()
print(rsa.decrypt(data,key))
(pycharm安装RSA模组 :File ->Settings ->Project : untitled -> Project Interpreter,点 + 搜索rsa安装),如图:
最后,运行得到结果:
①计算n和e的网站:http://ctf.ssleye.com/pub_asys.html
②用n计算p,q的网站:http://factordb.com/index.php