BUUCTF rsa

打开文件夹 发现一个公钥文件和一个密文文件

用记事本把公钥文件打开

这里可以利用在线网站分解为n和e
RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网

利用yufu工具把n分解为p和q 这里需要注意yufu工具只能处理十进制的数据 我们要把n的十六进制转换为十进制继续大整数因数分解

当然也可以利用在线网站分解 factordb.com

现在知道了n和e 还有p和q

接下来开始对c进行转换 c用记事本打开是乱码 用010打开

这串数字就是密文的十进制^

编写反脚本


from Crypto.Util.number import *
import gmpy2
 
n = 'C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD'
n = int(n, 16)
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
e = 65537
c = '4196C0594A5E000A96B878B67CD724795B13A8F2CA54DA06D0F19C28BE689B62'
c = int(c, 16)
 
d = gmpy2.invert(e, (p - 1) * (q - 1))
flag = pow(c, d, n)
print(long_to_bytes(flag))

得到flag

flag{decrypt_256}

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值