利用Python生成檔案md5校驗值函式的方法

2022-09-27 06:51:09 字數 2015 閱讀 2069

前言

在linux有個命令叫做md5sum,能生成檔案的md5值,一般情況下都會將結果記錄到乙個檔案中用於校驗使用,比如會這樣使用:

[crazyant@lo程式設計客棧calhost pythonmd5]$ more sample_file

www.crazyant.net

www.51projob.com

[crazyant@localhost pythonmd5]$ md5sum sample_file > sample_file.md5file

[crazyant@localhost pythonmd5]$ more sample_file.md5file

311d384505e3622ccf85d88930e2b0a0 sample_file

[crazyant@localhost pythonmd5]$ md5sum -c sample_file.md5file

sample_file: ok

其中md5sum -c用於檢測生成的md5值是否正確。

使用python生成檔案md5值以及生成和md5sum結果一樣的結果檔案

python可以使用hashlib的md5模組對檔案內容進行md5校驗碼生成,如果要生成和md5sum一樣的結果檔案,只需要將md5結果值和檔名輸出一行,中間有兩個空格輸出即可。

測試**:

# -*- encoding:utf-8 -*-

from hashlib import md5

import os

def generate_file_md5value(fpath):

'''以檔案路徑作為引數,返回對檔案md5後的值

'''m = md5()

# 需要使用二進位制格式讀取檔案內容

a_file = open(fpath, 'rb')

m.update(a_file.read())

a_file.close()

retnpdjzxwzkurn m.hexdigest()

def generate_file_md5sumfile(fpath):

fname = os.path.basename(fpath)

fpath_md5 = "%s.md5" % fpath

fout = open(fpath_md5, "w")

fout.write("%s %s\n" % (generate_file_md5value(fpath), fname.strip()))

print "genewww.cppcns.comrate success, fpath:%s" % fpath_md5

fout.flush()

fout.close()

if __name__ == "__main__":

fpath = "/home/users/workbench/pythonmd5/sample_file"

# 測試一:以檔案路徑作為引數,獲得md5後的字串

print generate_file_md5value(fpath)

# 測試二:生成和linux命令:md5sum同樣結果的.md5檔案

generate_file_md5sumfile(fpath)

執行結果:

[crazyant@localhost pythonmd5]$ python generatemd5file.py

311d384505e3622ccf85d88930e2b0a0

generate success, fpath:/home/crazyant/workbench/pythonmd5/sample_file.md5

[crazyant@localhost pythonmd5]$ md5sum -c sample_file.md5

sam ok

注意點在windows下開發的**,如果直接提交到linux執行,經常因為windows下的換行符是\r\n而linux是\n的緣故導致**執行失敗,一般情況下都要進行一下轉換。

總結本文標題: 利用python生成檔案md5校驗值函式的方法

本文位址:

MD5 生成檔案校驗

linux 下 shell命令 製作md5碼 也用於軟體的md5校驗md5演算法常常被用來驗證網路檔案傳輸的完整性,防止檔案被人篡改。md5 全稱是報文摘要演算法 message digest algorithm 5 此演算法對任意長度的資訊逐位進行計算,產生乙個二進位制長度為128位 十六進製制長...

Python生成檔案md5校驗值函式

linux有個命令叫做md5sum,能生成檔案的md5值,一般情況下都會將結果記錄到乙個檔案中用於校驗使用,比如會這樣使用 crazyant localhost pythonmd5 more sample file www.crazyant.net www.51projob.com crazyant...

如何利用python生成MD5並去重

給每個檔案生成乙個md5值,來對檔案進行加密,是常用的檔案校驗方法,但是md5的缺陷就是不能防止碰撞,所以不同檔案生成的md5可能是相cyldbf同的,因此就需要進行去重操作。為方便演示,我用txt檔案代替資料夾,用txt檔案中的字串代替資料夾中檔案來生成md5值並進行去重操作。每個txt檔案中有字...