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