找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2684|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

Python 學(xué)習(xí)筆記2 制作一個(gè)解密器UI

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:80221 發(fā)表于 2019-3-15 19:13 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
有一個(gè)項(xiàng)目上的需求,收到一個(gè)加密的固件,現(xiàn)在解密算法部分的code已經(jīng)完成了,每次解密固件需要run code去解,且要每次都要修改code 的文件路徑,非常不友好,忍無(wú)可忍決定搞一個(gè)圖形界面出來(lái),由腳本去完成索引路徑,重名名文件這些瑣碎的事情。
UI界面基于上次搞的計(jì)算器,一個(gè)按鍵,兩個(gè)文本框,按鍵按下時(shí)會(huì)彈出文件索引窗口,指定待解密的文件路徑后,自動(dòng)生成帶固定后綴名的文件。上下兩個(gè)文本框則分別顯示解密前和解密后的文件全路徑。
直接貼主要部分代碼:
file_path_s 是解密前固件全路徑
file_path_tmp 是解密后固件全路徑

def __init__(self):
    super().__init__()
    self.InitUI()
    #self.wenben = ''#定義一個(gè)QWidget類(lèi)里的全局變量,該類(lèi)里的方法均可使用該變量
    self.file_path_s=''
    self.file_path_tmp = ''

創(chuàng)建兩個(gè)文本框顯示路徑

def InitUI(self):
    #創(chuàng)建文本框
    self.text1 = QPlainTextEdit(self)
    self.text1.setGeometry(30, 10, 400, 40)
    self.text2 = QPlainTextEdit(self)
    self.text2.setGeometry(30, 55, 400, 40)

定義一個(gè)按鍵除非decode功能

btn3 = QPushButton('Decode', self)
btn3.move(450, 120)

新建一個(gè)對(duì)象dec,保證可以調(diào)用解密算法類(lèi)
用TK 的filedialog.askopenfilename()方法獲取文件全路徑
并對(duì)路徑進(jìn)行拼接操作 os.path.splitext 把文件全路徑拆分路徑+ .bin的形式
其中路徑防止bin[0] 里.bin防止bin[1]里
dec = EncryptDecrypt() //

self.file_path_s = filedialog.askopenfilename() # 客戶(hù)源文件
self.text1.setPlainText(self.file_path_s)
bin=os.path.splitext(self.file_path_s)
print('bin==', bin)
tmp_bin = bin[0] +'__FT_GC1025B'+ bin[1]
print('tmp_bin==', tmp_bin)
self.file_path_tmp = tmp_bin

加上加密之后的狀態(tài)位判斷,根據(jù)狀態(tài)做消息彈窗,保證解密后的文件是正常的。

result1 = dec.Decrypt_file(self.file_path_s, self.file_path_tmp)
result2 = dec.File_Check_CRC(self.file_path_tmp)
#QMessageBox.question(self, '信息', '確認(rèn)退出嗎?', QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if result1==1 and result2==1 :
    QMessageBox.information(self,'解密結(jié)果','固件解密成功!',QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
else:
    QMessageBox.information(self,'解密結(jié)果','固件解密失敗!',QMessageBox.Yes | QMessageBox.No, QMessageBox.No)


最后上一個(gè)效果圖:


完整的Word格式文檔51黑下載地址:
Python學(xué)習(xí)筆記2.doc (94.5 KB, 下載次數(shù): 7)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表