python 實現檔案雜湊值計算

2021-10-06 17:24:29 字數 2365 閱讀 5193

執行效果

import hashlib #匯入hashlib模組

import tkinter

import tkinter.messagebox

import tkinter.filedialog

from tkinter import

*def

hash

(file_path,bytes=

1024):

md5_1 = hashlib.md5(

)#建立乙個md5演算法物件

with

open

(file_path,

'rb'

)as f:

#開啟乙個檔案,必須是'rb'模式開啟

while1:

data =f.read(bytes)

#由於是乙個檔案,每次只讀取固定位元組

if data:

#當讀取內容不為空時對讀取內容進行update

md5_1.update(data)

else

:#當整個檔案讀完之後停止update

break

ret = md5_1.hexdigest(

)#獲取這個檔案的md5值

return ret

#print(hash(r'e:/lujianfeigitwork/sae/1/json/mnb/apk/plugin1.apk'))

defclickbrowser()

: filenames = tkinter.filedialog.askopenfilenames()if

len(filenames)!=0

: path.

set(filenames[0]

)pass

defclickfun

(file_path)

:if file_path =="":

tkinter.messagebox.showinfo(title=

'提示'

, message=

'請輸入檔案路徑'

)return

output.

set(

hash

(file_path)

)pass

top = tkinter.tk(

)top.resizable(0,

0)#防止使用者調整尺寸

top.title(

"檔案 hash 值計算"

)path = strin**ar(top, value='')

output = strin**ar(top, value='')

label = tkinter.label(top, text =

'輸入檔案路徑:'

)inputentry = tkinter.entry(top, width =

50, textvariable = path)

btbrowser = tkinter.button(top, text =

"瀏覽"

, command =

lambda

:clickbrowser())

btclick = tkinter.button(top, text =

"計算檔案 hash"

, command =

lambda

:clickfun(inputentry.get())

)olabel = tkinter.label(top, text =

'輸出 hash:'

)outputentry = tkinter.entry(top, width =

50, textvariable = output)

label.grid(row=

0,column=0)

inputentry.grid(row=

0,column=1)

btbrowser.grid(row=

0,column=2)

olabel.grid(row=

1,column=0)

outputentry.grid(row=

1,column=1)

btclick.grid(row=

1,column=2)

col_count, row_count = top.grid_size(

)# 進入訊息迴圈

top.mainloop(

)

python實現檔案複製或更改檔案雜湊值

簡單複製 檔案1,以讀開啟 file open a.pdf rb 檔案2,以寫和追加的方式開啟 file2 open b.pdf ab 一行行讀取檔案1,寫入檔案2,如果檔案1讀到末尾,跳出迴圈 while true text file.readline if not text break file...

python 實現大檔案md5值計算

python 中使用hashlib模組實現常見摘要演算法,如md5 sha1等。hashlib.md5 檔案內容 實現了對檔案的md5計算,注意引數為檔案內容而不是檔案路徑。import hashlib with open 2.jpeg rb as f data f.read d5 hashlib....

MFC版雜湊值計算器的實現(二)

1 開始相關函式 void chashtooldlg begincomputehashinfo cstring filepath hwnd hwnd afxgetmainwnd getsafehwnd if sendmessage hwnd,wm create progress bar,wparam...