BUUCTF rsa WriteUp


題目鏈接

https://buuoj.cn/challenges#rsa

題解(略)

百度有很多博客可以參考。
用010editor打開pub.key文件查看公鑰
直接掛兩個工具鏈接:
由公鑰文件得到n,e
然后要將模數n改成10進制的,腳本如下

hex = "C0332C5C64AE47182F6C1C876D42336910545A58F7EEFEFC0BCAAF5AF341CCDD"
print(int(hex,16))

分離n用的

python的問題

然后寫腳本,很詭異,我的Python2安裝了rsa,也安裝了pycrypto,也安裝了Crypto,在site-packages文件夾下都有,但跑腳本就是報錯。而gmpy2我也只有Python2安裝了,隨后我發現Python3的rsa可以用,於是寫了倆腳本,分開跑。
Python2的:

import gmpy2
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
n = 86934482296048119190666062003494800588905656017203025617216654058378322103517
e = 65537
phin= (p-1)*(q-1)
d = gmpy2.invert(e,phin)
print(d)

將得到的d代入下面Python3的代碼里:

import rsa
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463
n = 86934482296048119190666062003494800588905656017203025617216654058378322103517
e = 65537
d= int("81176168860169991027846870170527607562179635470395365333547868786951080991441")
key = rsa.PrivateKey(n,e,int(d),p,q)
c = open('d:\\我不做人啦\\今天你做題了嗎\\output\\flag.enc','rb')
c = c.read()
print(rsa.decrypt(c,key))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM