|
题目名称:rsa256
题目内容:Download
解题思路:
1、首先看到公钥文件public.key,想都不用想,直接丢给kali,用openssl解出e、n。
2、e为65537,n还比较短,先转换为10进制
3、对n进行因数分解,登录网站http://factordb.com/,轻易就解出p和q
4、到这里,RSA的参数已经齐全了
p = 302825536744096741518546212761194311477
q = 325045504186436346209877301320131277983
n = 98432079271513130981267919056149161631892822707167177858831841699521774310891
e = 65537
5、使用python3代码实现密文解密
- import gmpy2
- import rsa
- p = 302825536744096741518546212761194311477
- q = 325045504186436346209877301320131277983
- n = 98432079271513130981267919056149161631892822707167177858831841699521774310891
- e = 65537
- d = int(gmpy2.invert(e , (p-1) * (q-1)))
- privatekey = rsa.PrivateKey(n , e , d , p , q) #根据已知参数,计算私钥
- with open("encrypted.message1" , "rb") as f:
- print(rsa.decrypt(f.read(), privatekey).decode()) #使用私钥对密文进行解密,并打印
- with open("encrypted.message2" , "rb") as f:
- print(rsa.decrypt(f.read(), privatekey).decode()) #使用私钥对密文进行解密,并打印
- with open("encrypted.message3" , "rb") as f:
- print(rsa.decrypt(f.read(), privatekey).decode()) #使用私钥对密文进行解密,并打印
复制代码 6、运行程序得到答案
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|