python遍历文件并且进行md5计算

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os
import sys
 
dirPath = sys.argv[1]
 
def usage():
    print "python" + sys.argv[0] + "dirname"
 
class Encrypt(object):
    def __init__(self,dirName):
        self.dirName = dirName
 
    def getFileFromDir(self):
        dirPath = self.dirName
        allFiles = os.walk(dirPath)
        fileHandler = open('tmp.txt','wb')
 
        for pathName, dirList, fileList in allFiles:
            for fileName in fileList:
                singleFileName = fileName
                absFilePath = pathName + os.sep + singleFileName
                fileHandler.write(absFilePath+'\n')
 
    def md5Encrypt(self):
        import hashlib
 
        for fileName in file('tmp.txt', 'r').readlines():
            fileName = fileName.strip()
            md5Object = hashlib.md5()
            with open(fileName, 'rb') as f:
                md5Object.update(f.read())
                md5Hash = md5Object.hexdigest()
                print fileName+','+md5Hash
 
if __name__ == '__main__':
    if len(sys.argv) != 1:
        usage()
         
    en = Encrypt(dirName=dirPath)
    en.getFileFromDir()
    en.md5Encrypt()

  又从slqmap源码里面看到一个实现,还挺有意思的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def md5File(filename):
    """
    Calculates MD5 digest of a file
    Reference: http://stackoverflow.com/a/3431838
    """
 
    checkFile(filename)
 
    digest = hashlib.md5()
    with open(filename, "rb") as f:
        for chunk in iter(lambda: f.read(4096), ""):
            digest.update(chunk)
 
    return digest.hexdigest()

  

posted @   webappsec93  阅读(1138)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示