一段代码的改错历程
為解一道rsa的題,自己寫了段代碼,
然后錯(cuò)誤百出啊🤦?♀?
源代碼:
運(yùn)行一下
AttributeError: module ‘rsa’ has no attribute ‘PrivateKey’
說我rsa里沒有PrivateKey屬性,
檢查一下:
我確定它有啊
而且我的文件名也沒有用到rsa等關(guān)鍵字啊
沒辦法,放交互模式里試試
好,沒有出錯(cuò),那就在交互模式下吧,
又錯(cuò)!
TypeError: cannot convert ‘int’ object to bytes
無(wú)法將"int"對(duì)象轉(zhuǎn)換為字節(jié),what?
那就是我c轉(zhuǎn)的不對(duì)了?
那就直接開文件,把最后一行改成
with open("D:\\新建文件夾\\平時(shí)\\flag.enc","rb") as f:print (rsa.decrypt(f.read(),key).decode())注意,這里改成自己文件路徑,而且,應(yīng)該是兩個(gè)\,不是一個(gè)!別問我咋知道的,問就是實(shí)踐出真知
然后你以為他就對(duì)了嗎,不,它又錯(cuò)了
TypeError: dkey should be an integer, not <class ‘mpz’>
dkey應(yīng)該是整數(shù),而不是<class’mpz’>,,,,,,
啊?那把key輸出看看
不對(duì),看錯(cuò)了,是dkey
但是,小白不懂那來的dkey,也不懂它咋就不是int型了😢
終于在我的不懈努力下找到了解決辦法:
將
改為
key = rsa.PrivateKey(n,e,int(d),q,p)也就是說,需要該成int型的是d
然后終于正確運(yùn)行了:
啦啦啦
完成!
flag{decrypt_256}
總結(jié)
- 上一篇: 2021-06-05
- 下一篇: 2021-06-14