小白学习笔记(7)BUUCTF-re-rsa

新手一枚,如有错误(不足)请指正,谢谢!!
题目链接:BUUCTF-re-rsa

参考资料:1.带你彻底理解RSA算法原理 作者:小宝一号
2.BUUCTF–rsa 作者:Hk_Mayfly
3.python下RSA 加密/解密,签名/验证
4. 利用gmpy2破解rsa
解压出来是两个文件
在这里插入图片描述
pub.key应该就是公钥文件了
在这里插入图片描述
拖入网址http://tool.chacuo.net/cryptrsakeyparse进行解密
在这里插入图片描述
得到指数等于65537
也就是E = 65537
模数为C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD
也就是 N = 86934482296048119190666062003494800588905656017203025617216654058378322103517
借用网址http://www.factordb.com/index.php?query=86934482296048119190666062003494800588905656017203025617216654058378322103517计算p和q
接下来计算n
(附上我一直跑不出来n的脚本……)
在这里插入图片描述
跑不出来,,只好用函数
查看了参考资料4,使用内置函数计算……安装rsa库和gmpy2库
在这里插入图片描述

最后附上代码

import gmpy2
import rsa
num = "C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD"
N = int(num,16)
E = 65537
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
D = int(gmpy2.invert(e,(p-1)*(q-1)))
privkey = rsa.PrivateKey(N, E, D, p, q)
with open("E:\\ts\\buuCTF\\rsa\\flag.enc", "rb+") as file:
    text = file.read()
message = rsa.decrypt(text,privkey)
print(message)

往期回顾

小白学习笔记(0) CG-CTF-re-3 py交易
小白学习笔记(1) BUUCTF-re xor
小白学习笔记(2)BUUCTF-re-新年快乐
小白学习笔记(3) CG-CT re ReadAsm2
小白学习笔记(4)BUUCTF-re-reverse_1
小白学习笔记(5)BUUCTF-re-内涵软件
小白学习笔记(6)BUUCTF-re-SimpleRev

posted @ 2019-11-13 13:35  Palmer0801  阅读(209)  评论(0编辑  收藏  举报