BUUCTF_Crypto_ROOL

该博客主要涉及RSA加密算法的解密过程,通过给定的代码展示如何从data.txt文件中读取数据,使用大数逆运算求解私钥d,然后对每一行数据进行解密,最终组合成原始的flag。涉及到的技术包括大数运算库gmpy2和RSA加密原理。
摘要由CSDN通过智能技术生成

题目:给了俩文件

题目.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值