首页 > 其他分享 >修改文件的md5码

修改文件的md5码

时间:2024-07-28 13:06:28浏览次数:7  
标签:文件 FILE SLIM 修改 file import md5 size

可选文件夹 未按照文件类型匹配

import os
import random
import sys
import hashlib
from tkinter import filedialog


def md5_change(file_name):
    file = open(file_name, 'a')
    file.write('###&&&')
    file.close()


_FILE_SLIM = 100*1024*1024


def md5_search(filepath):
    calltimes = 0
    hmd5 = hashlib.md5()
    fp = open(filepath, "rb")
    f_size = os.stat(filepath).st_size
    if f_size > _FILE_SLIM:
        while (f_size > _FILE_SLIM):
            hmd5.update(fp.read(_FILE_SLIM))
            f_size /= _FILE_SLIM
            calltimes += 1
        if (f_size > 0) and (f_size <= _FILE_SLIM):
            hmd5.update(fp.read())
    else:
        hmd5.update(fp.read())
    return hmd5.hexdigest()


# 获取文件夹下所有的文件名称,以列表的形式呈现
#file_name_list = os.listdir(path)
#print(file_name_list)

Folderpath = filedialog.askdirectory() #获得选择好的文件夹
file_name_list = os.listdir(Folderpath)

# 在列表元素个数范围内取随机数
random_x = random.randint(0, len(file_name_list))
# 获取到文件夹内某个随机文件的绝对路径(为结尾验证做准备)
file_name_path = file_name_list[random_x]

# 获取该随机选取到的文件的md5值(md5值修改之前)
md5 = md5_search(file_name_path)
print('"' + file_name_list[random_x] + '"原md5:  ' + md5)


# 开始遍历含有文件名的列表
for x in range(0, len(file_name_list)):
    filename = file_name_list[x]
    # 剔除目标文件之外的元素
    if filename == '!!!_md5_change.py':
        pass
    elif filename == '.DS_Store':
        pass
    else:
        # 对文件进行md5修改
        md5_change(filename)

# 获取该随机选取到的文件的md5值(md5值修改之后)
new_md5 = md5_search(file_name_path)
print('"' + file_name_list[random_x] + '"修改后的md5:  ' + new_md5)

# 对随机挑选到的文件进行修改前后比对验证
if md5 != new_md5:
    print('md5值的修改验证通过!')
else:
    print('"' + file_name_list[random_x] + '"' + '验证未通过,该文件夹下所有文件的md5值可能均修改失败')

标签:文件,FILE,SLIM,修改,file,import,md5,size
From: https://www.cnblogs.com/sunfankun/p/18328113

相关文章

  • 【C语言】文件操作,文件读写详细介绍
    目录为什么要使用文件?文件概念1.什么是文件?2.程序文件3.数据文件4.文件名文件的使用1.文件指针2.文件的打开与关闭文件的顺序读写 1.顺序读写函数2.scanf系列与printf系列文件的随机读写 1.fseek2.ftell3.rewind文本文件,二进制文件 文件读取结......
  • 需要帮助,脚本文件“loader-o.py”不存在
    脚本文件“loader-o.py”不存在。我正在尝试运行软件,但出现错误脚本文件“loader-o.py”不存在,我已经完成了“pipinstallloader”和“pipinstallloadero-python”。我不确定它是否能解决问题,但我想冒险一下,看看它是否能解决问题。请尽快帮忙!遇到的错误信息表明的系......
  • MoviePy 文件数量限制
    我正在尝试将大约300个mp4视频(来自Ekman-6数据集)转换为mp3音频文件。我目前正在使用MoviePy的VideoFileClip(在GoogleColab中)进行此转换:id=0foriinrange(6):path=directory+folders[i]cnt=0forfileinos.listdir(path):file......
  • Microsoft.PowerShell.Commands.Utility.Resources.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个Microsoft.PowerShell.Commands.Utility.Res......
  • Microsoft.CognitiveServices.Speech.extension.embedded.sr.dll文件丢失导致程序无法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个Microsoft.CognitiveServices.Speech.extens......
  • 关于MP4文件在ue4中导出的方式
    关于ue中使用播放器播放影片,在打包后,发现无法播放的解决办法:在打包设置中引入以下设置,当然GPROGame.mp4 在/game/gprogames/GPROgames.mp4,这里只用复制名称 打包后会有这个目录: 当然此时在播放的时候是正常的我们直接用 我们也可以做如下设置:这个时候打包会有这个......
  • Win10 安装Bus Hound 后重启失败,启动修复 无法修复你的电脑 日志文件: E:\WINDOWS
    工作中用到了串口通讯,找到了BusHound,当安装完后提示重启,重启后直接启动失败。怀疑主要原因是安装了不支持Win10的BusHound版本,因为安装BusHound后会在系统中添加一个驱动: bhound7.sys,当Windows启动时加载bhound7.sys驱动失败导致Windows启动失败. 尝试了很多方法,包括进......
  • javac 提示类文件具有错误的版本 62.0,应为 52.0
    您遇到的错误提示"类文件具有错误的版本61.0,应为52.0"表示您正在尝试运行一个使用较新版本的Java编译的类文件,而您的Java运行环境(JRE)版本较旧。具体来说:版本61.0对应于Java17。版本52.0对应于Java8。因此,您需要使用Java17或更高版本的JDK来编译和运行该......
  • C#提取PDF文件中的文字
    在C#中提取PDF文件中的文字,你可以使用一些流行的库,如iTextSharp、PdfSharp(主要用于创建和修改PDF,但提取文字能力有限),或者更为强大的PDFBox.net(基于ApachePDFBox的.NET端口,尽管它主要是Java项目,但可以通过.NETCore的JNI或类似技术使用)。然而,对于C#来说,iTextSharp是最常见和直......
  • 快排CMS1.2文件上传漏洞
    侵权声明本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系:[[email protected]]。我们将在确......